Skip to content

Commit

Permalink
fix(datatypes): always quote sqlglot struct fields (#8777)
Browse files Browse the repository at this point in the history
Fixes #8771.
  • Loading branch information
cpcloud authored Mar 29, 2024
1 parent 973c3d3 commit 18bb91b
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 10 deletions.
4 changes: 2 additions & 2 deletions ibis/backends/bigquery/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1038,7 +1038,7 @@ def create_table(

column_defs = [
sge.ColumnDef(
this=name,
this=sg.to_identifier(name, quoted=self.compiler.quoted),
kind=BigQueryType.from_ibis(typ),
constraints=(
None
Expand Down Expand Up @@ -1150,7 +1150,7 @@ def _get_udf_source(self, udf_node: ops.ScalarUDF):

signature = [
sge.ColumnDef(
this=sg.to_identifier(name),
this=sg.to_identifier(name, quoted=self.compiler.quoted),
kind=type_mapper.from_ibis(param.annotation.pattern.dtype),
)
for name, param in udf_node.__signature__.parameters.items()
Expand Down
2 changes: 1 addition & 1 deletion ibis/backends/clickhouse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -652,7 +652,7 @@ def create_table(
this=sg.table(name, db=database),
expressions=[
sge.ColumnDef(
this=sg.to_identifier(name),
this=sg.to_identifier(name, quoted=self.compiler.quoted),
kind=self.compiler.type_mapper.from_ibis(typ),
)
for name, typ in schema.items()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
SELECT
CAST("t0"."string_col" AS Tuple(a Nullable(String), b Nullable(Int64))) AS "Cast(string_col, !struct<a: string, b: int64>)"
CAST("t0"."string_col" AS Tuple("a" Nullable(String), "b" Nullable(Int64))) AS "Cast(string_col, !struct<a: string, b: int64>)"
FROM "functional_alltypes" AS "t0"
6 changes: 5 additions & 1 deletion ibis/backends/sql/datatypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,11 @@ def _from_ibis_Map(cls, dtype: dt.Map) -> sge.DataType:
@classmethod
def _from_ibis_Struct(cls, dtype: dt.Struct) -> sge.DataType:
fields = [
sge.ColumnDef(this=str(name), kind=cls.from_ibis(field))
sge.ColumnDef(
# always quote struct fields to allow reserved words as field names
this=sg.to_identifier(name, quoted=True),
kind=cls.from_ibis(field),
)
for name, field in dtype.items()
]
return sge.DataType(this=typecode.STRUCT, expressions=fields, nested=True)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ WITH "t5" AS (
SELECT
"t0"."field_of_study",
arrayJoin(
[CAST(tuple('1970-71', "t0"."1970-71") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('1975-76', "t0"."1975-76") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('1980-81', "t0"."1980-81") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('1985-86', "t0"."1985-86") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('1990-91', "t0"."1990-91") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('1995-96', "t0"."1995-96") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2000-01', "t0"."2000-01") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2005-06', "t0"."2005-06") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2010-11', "t0"."2010-11") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2011-12', "t0"."2011-12") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2012-13', "t0"."2012-13") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2013-14', "t0"."2013-14") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2014-15', "t0"."2014-15") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2015-16', "t0"."2015-16") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2016-17', "t0"."2016-17") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2017-18', "t0"."2017-18") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2018-19', "t0"."2018-19") AS Tuple(years Nullable(String), degrees Nullable(Int64))), CAST(tuple('2019-20', "t0"."2019-20") AS Tuple(years Nullable(String), degrees Nullable(Int64)))]
[CAST(tuple('1970-71', "t0"."1970-71") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('1975-76', "t0"."1975-76") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('1980-81', "t0"."1980-81") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('1985-86', "t0"."1985-86") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('1990-91', "t0"."1990-91") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('1995-96', "t0"."1995-96") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2000-01', "t0"."2000-01") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2005-06', "t0"."2005-06") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2010-11', "t0"."2010-11") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2011-12', "t0"."2011-12") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2012-13', "t0"."2012-13") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2013-14', "t0"."2013-14") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2014-15', "t0"."2014-15") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2015-16', "t0"."2015-16") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2016-17', "t0"."2016-17") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2017-18', "t0"."2017-18") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2018-19', "t0"."2018-19") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64))), CAST(tuple('2019-20', "t0"."2019-20") AS Tuple("years" Nullable(String), "degrees" Nullable(Int64)))]
) AS "__pivoted__"
FROM "humanities" AS "t0"
) AS "t1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,19 @@ WITH "t5" AS (
1,
GREATEST(
CARDINALITY(
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW(years VARCHAR, degrees BIGINT))]
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW("years" VARCHAR, "degrees" BIGINT))]
)
)
)) AS _u(pos)
CROSS JOIN UNNEST(ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW(years VARCHAR, degrees BIGINT))]) WITH ORDINALITY AS _u_2("__pivoted__", pos_2)
CROSS JOIN UNNEST(ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW("years" VARCHAR, "degrees" BIGINT))]) WITH ORDINALITY AS _u_2("__pivoted__", pos_2)
WHERE
_u.pos = _u_2.pos_2
OR (
_u.pos > CARDINALITY(
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW(years VARCHAR, degrees BIGINT))]
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW("years" VARCHAR, "degrees" BIGINT))]
)
AND _u_2.pos_2 = CARDINALITY(
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW(years VARCHAR, degrees BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW(years VARCHAR, degrees BIGINT))]
ARRAY[CAST(ROW('1970-71', "t0"."1970-71") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1975-76', "t0"."1975-76") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1980-81', "t0"."1980-81") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1985-86', "t0"."1985-86") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1990-91', "t0"."1990-91") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('1995-96', "t0"."1995-96") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2000-01', "t0"."2000-01") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2005-06', "t0"."2005-06") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2010-11', "t0"."2010-11") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2011-12', "t0"."2011-12") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2012-13', "t0"."2012-13") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2013-14', "t0"."2013-14") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2014-15', "t0"."2014-15") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2015-16', "t0"."2015-16") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2016-17', "t0"."2016-17") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2017-18', "t0"."2017-18") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2018-19', "t0"."2018-19") AS ROW("years" VARCHAR, "degrees" BIGINT)), CAST(ROW('2019-20', "t0"."2019-20") AS ROW("years" VARCHAR, "degrees" BIGINT))]
)
)
) AS "t1"
Expand Down
Loading

0 comments on commit 18bb91b

Please sign in to comment.