Merging upstream version 11.3.6.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f5f7767f8d
commit
e33f287a97
46 changed files with 23416 additions and 22639 deletions
|
@ -21,10 +21,10 @@ class TestDuckDB(Validator):
|
|||
self.validate_all(
|
||||
"EPOCH_MS(x)",
|
||||
write={
|
||||
"bigquery": "UNIX_TO_TIME(CAST(x / 1000 AS INT64))",
|
||||
"bigquery": "UNIX_TO_TIME(x / 1000)",
|
||||
"duckdb": "TO_TIMESTAMP(x / 1000)",
|
||||
"presto": "FROM_UNIXTIME(x / 1000)",
|
||||
"spark": "FROM_UNIXTIME(CAST(x / 1000 AS INT))",
|
||||
"spark": "FROM_UNIXTIME(x / 1000)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
|
@ -120,28 +120,17 @@ class TestDuckDB(Validator):
|
|||
self.validate_identity("SELECT ROW(x, x + 1, y) FROM (SELECT 1 AS x, 'a' AS y)")
|
||||
self.validate_identity("SELECT (x, x + 1, y) FROM (SELECT 1 AS x, 'a' AS y)")
|
||||
self.validate_identity("SELECT a.x FROM (SELECT {'x': 1, 'y': 2, 'z': 3} AS a)")
|
||||
self.validate_identity("ATTACH DATABASE ':memory:' AS new_database")
|
||||
self.validate_identity(
|
||||
"SELECT a['x space'] FROM (SELECT {'x space': 1, 'y': 2, 'z': 3} AS a)"
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"CREATE TABLE IF NOT EXISTS table (cola INT, colb STRING) USING ICEBERG PARTITIONED BY (colb)",
|
||||
write={
|
||||
"duckdb": "CREATE TABLE IF NOT EXISTS table (cola INT, colb TEXT)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"COL::BIGINT[]",
|
||||
write={
|
||||
"duckdb": "CAST(COL AS BIGINT[])",
|
||||
"presto": "CAST(COL AS ARRAY(BIGINT))",
|
||||
"hive": "CAST(COL AS ARRAY<BIGINT>)",
|
||||
"spark": "CAST(COL AS ARRAY<LONG>)",
|
||||
"postgres": "CAST(COL AS BIGINT[])",
|
||||
"snowflake": "CAST(COL AS ARRAY)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"LIST_VALUE(0, 1, 2)",
|
||||
read={
|
||||
|
@ -212,7 +201,6 @@ class TestDuckDB(Validator):
|
|||
"spark": "x.`y`.`abc`",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"QUANTILE(x, 0.5)",
|
||||
write={
|
||||
|
@ -222,14 +210,6 @@ class TestDuckDB(Validator):
|
|||
"spark": "PERCENTILE(x, 0.5)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"CAST(x AS DATE)",
|
||||
write={
|
||||
"duckdb": "CAST(x AS DATE)",
|
||||
"": "CAST(x AS DATE)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"UNNEST(x)",
|
||||
read={
|
||||
|
@ -240,7 +220,6 @@ class TestDuckDB(Validator):
|
|||
"spark": "EXPLODE(x)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"1d",
|
||||
write={
|
||||
|
@ -248,13 +227,6 @@ class TestDuckDB(Validator):
|
|||
"spark": "1 AS d",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"CAST(1 AS DOUBLE)",
|
||||
read={
|
||||
"hive": "1d",
|
||||
"spark": "1d",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"POWER(CAST(2 AS SMALLINT), 3)",
|
||||
read={
|
||||
|
@ -351,8 +323,6 @@ class TestDuckDB(Validator):
|
|||
},
|
||||
)
|
||||
|
||||
self.validate_identity("ATTACH DATABASE ':memory:' AS new_database")
|
||||
|
||||
with self.assertRaises(UnsupportedError):
|
||||
transpile(
|
||||
"SELECT a FROM b PIVOT(SUM(x) FOR y IN ('z', 'q'))",
|
||||
|
@ -372,13 +342,44 @@ class TestDuckDB(Validator):
|
|||
self.validate_identity("ARRAY(SELECT id FROM t)")
|
||||
|
||||
def test_cast(self):
|
||||
self.validate_identity("CAST(x AS REAL)")
|
||||
self.validate_identity("CAST(x AS UINTEGER)")
|
||||
self.validate_identity("CAST(x AS UBIGINT)")
|
||||
self.validate_identity("CAST(x AS USMALLINT)")
|
||||
self.validate_identity("CAST(x AS UTINYINT)")
|
||||
self.validate_identity("CAST(x AS TEXT)")
|
||||
|
||||
self.validate_all("CAST(x AS NUMERIC)", write={"duckdb": "CAST(x AS DOUBLE)"})
|
||||
self.validate_all("CAST(x AS CHAR)", write={"duckdb": "CAST(x AS TEXT)"})
|
||||
self.validate_all("CAST(x AS BPCHAR)", write={"duckdb": "CAST(x AS TEXT)"})
|
||||
self.validate_all("CAST(x AS STRING)", write={"duckdb": "CAST(x AS TEXT)"})
|
||||
self.validate_all("CAST(x AS INT1)", write={"duckdb": "CAST(x AS TINYINT)"})
|
||||
self.validate_all("CAST(x AS FLOAT4)", write={"duckdb": "CAST(x AS REAL)"})
|
||||
self.validate_all("CAST(x AS FLOAT)", write={"duckdb": "CAST(x AS REAL)"})
|
||||
self.validate_all("CAST(x AS INT4)", write={"duckdb": "CAST(x AS INT)"})
|
||||
self.validate_all("CAST(x AS INTEGER)", write={"duckdb": "CAST(x AS INT)"})
|
||||
self.validate_all("CAST(x AS SIGNED)", write={"duckdb": "CAST(x AS INT)"})
|
||||
self.validate_all("CAST(x AS BLOB)", write={"duckdb": "CAST(x AS BLOB)"})
|
||||
self.validate_all("CAST(x AS BYTEA)", write={"duckdb": "CAST(x AS BLOB)"})
|
||||
self.validate_all("CAST(x AS BINARY)", write={"duckdb": "CAST(x AS BLOB)"})
|
||||
self.validate_all("CAST(x AS VARBINARY)", write={"duckdb": "CAST(x AS BLOB)"})
|
||||
self.validate_all("CAST(x AS LOGICAL)", write={"duckdb": "CAST(x AS BOOLEAN)"})
|
||||
self.validate_all(
|
||||
"CAST(x AS BIT)",
|
||||
read={
|
||||
"duckdb": "CAST(x AS BITSTRING)",
|
||||
},
|
||||
write={
|
||||
"duckdb": "CAST(x AS BIT)",
|
||||
"tsql": "CAST(x AS BIT)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"123::CHARACTER VARYING",
|
||||
write={
|
||||
"duckdb": "CAST(123 AS TEXT)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"cast([[1]] as int[][])",
|
||||
write={
|
||||
|
@ -386,10 +387,34 @@ class TestDuckDB(Validator):
|
|||
"spark": "CAST(ARRAY(ARRAY(1)) AS ARRAY<ARRAY<INT>>)",
|
||||
},
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"CAST(x AS DATE) + INTERVAL (7 * -1) DAY", read={"spark": "DATE_SUB(x, 7)"}
|
||||
)
|
||||
self.validate_all(
|
||||
"CAST(1 AS DOUBLE)",
|
||||
read={
|
||||
"hive": "1d",
|
||||
"spark": "1d",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"CAST(x AS DATE)",
|
||||
write={
|
||||
"duckdb": "CAST(x AS DATE)",
|
||||
"": "CAST(x AS DATE)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"COL::BIGINT[]",
|
||||
write={
|
||||
"duckdb": "CAST(COL AS BIGINT[])",
|
||||
"presto": "CAST(COL AS ARRAY(BIGINT))",
|
||||
"hive": "CAST(COL AS ARRAY<BIGINT>)",
|
||||
"spark": "CAST(COL AS ARRAY<LONG>)",
|
||||
"postgres": "CAST(COL AS BIGINT[])",
|
||||
"snowflake": "CAST(COL AS ARRAY)",
|
||||
},
|
||||
)
|
||||
|
||||
def test_bool_or(self):
|
||||
self.validate_all(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue