You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"""SELECT CAST(STRUCT(['2023-01-17']) AS STRUCT<ARRAY<STRING>>)""",
1767
+
)
1768
+
self.validate_identity(
1769
+
"""SELECT STRUCT<STRING>((SELECT 'foo')).*""",
1770
+
"""SELECT CAST(STRUCT((SELECT 'foo')) AS STRUCT<STRING>).*""",
1771
+
)
1772
+
1773
+
self.validate_all(
1774
+
"SELECT ARRAY<INT>[1, 2, 3]",
1775
+
write={
1776
+
"bigquery": "SELECT CAST([1, 2, 3] AS ARRAY<INT64>)",
1777
+
"duckdb": "SELECT CAST([1, 2, 3] AS INT[])",
1778
+
},
1779
+
)
1780
+
self.validate_all(
1781
+
"CAST(STRUCT<a INT64>(1) AS STRUCT<a INT64>)",
1782
+
write={
1783
+
"bigquery": "CAST(CAST(STRUCT(1) AS STRUCT<a INT64>) AS STRUCT<a INT64>)",
1784
+
"duckdb": "CAST(CAST(ROW(1) AS STRUCT(a BIGINT)) AS STRUCT(a BIGINT))",
1785
+
},
1786
+
)
1787
+
self.validate_all(
1788
+
"SELECT * FROM UNNEST(ARRAY<STRUCT<x INT64>>[])",
1789
+
write={
1790
+
"bigquery": "SELECT * FROM UNNEST(CAST([] AS ARRAY<STRUCT<x INT64>>))",
1791
+
"duckdb": "SELECT * FROM UNNEST(CAST([] AS STRUCT(x BIGINT)[]))",
1792
+
},
1793
+
)
1794
+
self.validate_all(
1795
+
"SELECT * FROM UNNEST(ARRAY<STRUCT<device_id INT64, time DATETIME, signal INT64, state STRING>>[STRUCT(1, DATETIME '2023-11-01 09:34:01', 74, 'INACTIVE'),STRUCT(4, DATETIME '2023-11-01 09:38:01', 80, 'ACTIVE')])",
1796
+
write={
1797
+
"bigquery": "SELECT * FROM UNNEST(CAST([STRUCT(1, CAST('2023-11-01 09:34:01' AS DATETIME), 74, 'INACTIVE'), STRUCT(4, CAST('2023-11-01 09:38:01' AS DATETIME), 80, 'ACTIVE')] AS ARRAY<STRUCT<device_id INT64, time DATETIME, signal INT64, state STRING>>))",
1798
+
"duckdb": "SELECT * FROM UNNEST(CAST([ROW(1, CAST('2023-11-01 09:34:01' AS TIMESTAMP), 74, 'INACTIVE'), ROW(4, CAST('2023-11-01 09:38:01' AS TIMESTAMP), 80, 'ACTIVE')] AS STRUCT(device_id BIGINT, time TIMESTAMP, signal BIGINT, state TEXT)[]))",
1799
+
},
1800
+
)
1801
+
self.validate_all(
1802
+
"SELECT STRUCT<a INT64, b STRUCT<c STRING>>(1, STRUCT('c_str'))",
1803
+
write={
1804
+
"bigquery": "SELECT CAST(STRUCT(1, STRUCT('c_str')) AS STRUCT<a INT64, b STRUCT<c STRING>>)",
1805
+
"duckdb": "SELECT CAST(ROW(1, ROW('c_str')) AS STRUCT(a BIGINT, b STRUCT(c TEXT)))",
0 commit comments