1
0
Fork 0

Adding upstream version 25.5.1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 21:41:00 +01:00
parent 147b6e06e8
commit 4e506fbac7
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
136 changed files with 80990 additions and 72541 deletions

View file

@ -103,6 +103,7 @@ LANGUAGE js AS
select_with_quoted_udf = self.validate_identity("SELECT `p.d.UdF`(data) FROM `p.d.t`")
self.assertEqual(select_with_quoted_udf.selects[0].name, "p.d.UdF")
self.validate_identity("CAST(x AS STRUCT<list ARRAY<INT64>>)")
self.validate_identity("assert.true(1 = 1)")
self.validate_identity("SELECT ARRAY_TO_STRING(list, '--') AS text")
self.validate_identity("SELECT jsondoc['some_key']")
@ -293,6 +294,20 @@ LANGUAGE js AS
r"REGEXP_EXTRACT(svc_plugin_output, '\\\\\\((.*)')",
)
self.validate_all(
"SAFE_CAST(some_date AS DATE FORMAT 'DD MONTH YYYY')",
write={
"bigquery": "SAFE_CAST(some_date AS DATE FORMAT 'DD MONTH YYYY')",
"duckdb": "CAST(TRY_STRPTIME(some_date, '%d %B %Y') AS DATE)",
},
)
self.validate_all(
"SAFE_CAST(some_date AS DATE FORMAT 'YYYY-MM-DD') AS some_date",
write={
"bigquery": "SAFE_CAST(some_date AS DATE FORMAT 'YYYY-MM-DD') AS some_date",
"duckdb": "CAST(TRY_STRPTIME(some_date, '%Y-%m-%d') AS DATE) AS some_date",
},
)
self.validate_all(
"SELECT t.c1, h.c2, s.c3 FROM t1 AS t, UNNEST(t.t2) AS h, UNNEST(h.t3) AS s",
write={
@ -1345,6 +1360,46 @@ WHERE
"bigquery": "SELECT CAST(x AS DATETIME)",
},
)
self.validate_all(
"SELECT TIME(foo, 'America/Los_Angeles')",
write={
"duckdb": "SELECT CAST(CAST(foo AS TIMESTAMPTZ) AT TIME ZONE 'America/Los_Angeles' AS TIME)",
"bigquery": "SELECT TIME(foo, 'America/Los_Angeles')",
},
)
self.validate_all(
"SELECT DATETIME('2020-01-01')",
write={
"duckdb": "SELECT CAST('2020-01-01' AS TIMESTAMP)",
"bigquery": "SELECT DATETIME('2020-01-01')",
},
)
self.validate_all(
"SELECT DATETIME('2020-01-01', TIME '23:59:59')",
write={
"duckdb": "SELECT CAST(CAST('2020-01-01' AS DATE) + CAST('23:59:59' AS TIME) AS TIMESTAMP)",
"bigquery": "SELECT DATETIME('2020-01-01', CAST('23:59:59' AS TIME))",
},
)
self.validate_all(
"SELECT DATETIME('2020-01-01', 'America/Los_Angeles')",
write={
"duckdb": "SELECT CAST(CAST('2020-01-01' AS TIMESTAMPTZ) AT TIME ZONE 'America/Los_Angeles' AS TIMESTAMP)",
"bigquery": "SELECT DATETIME('2020-01-01', 'America/Los_Angeles')",
},
)
self.validate_all(
"SELECT LENGTH(foo)",
read={
"bigquery": "SELECT LENGTH(foo)",
"snowflake": "SELECT LENGTH(foo)",
},
write={
"duckdb": "SELECT CASE TYPEOF(foo) WHEN 'VARCHAR' THEN LENGTH(CAST(foo AS TEXT)) WHEN 'BLOB' THEN OCTET_LENGTH(CAST(foo AS BLOB)) END",
"snowflake": "SELECT LENGTH(foo)",
"": "SELECT LENGTH(foo)",
},
)
def test_errors(self):
with self.assertRaises(TokenError):