1
0
Fork 0

Merging upstream version 26.6.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 22:19:49 +01:00
parent 12333df27e
commit 3532bfd564
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
99 changed files with 40433 additions and 38803 deletions

View file

@ -73,6 +73,7 @@ class TestPostgres(Validator):
self.validate_identity("SELECT * FROM r CROSS JOIN LATERAL UNNEST(ARRAY[1]) AS s(location)")
self.validate_identity("CAST(1 AS DECIMAL) / CAST(2 AS DECIMAL) * -100")
self.validate_identity("EXEC AS myfunc @id = 123", check_command_warning=True)
self.validate_identity("SELECT CURRENT_SCHEMA")
self.validate_identity("SELECT CURRENT_USER")
self.validate_identity("SELECT * FROM ONLY t1")
self.validate_identity(
@ -144,10 +145,6 @@ class TestPostgres(Validator):
"SELECT ARRAY[1, 2, 3] <@ ARRAY[1, 2]",
"SELECT ARRAY[1, 2] @> ARRAY[1, 2, 3]",
)
self.validate_identity(
"SELECT ARRAY[]::INT[] AS foo",
"SELECT CAST(ARRAY[] AS INT[]) AS foo",
)
self.validate_identity(
"SELECT DATE_PART('isodow'::varchar(6), current_date)",
"SELECT EXTRACT(CAST('isodow' AS VARCHAR(6)) FROM CURRENT_DATE)",
@ -349,6 +346,13 @@ class TestPostgres(Validator):
"CAST(x AS BIGINT)",
)
self.validate_all(
"SELECT ARRAY[]::INT[] AS foo",
write={
"postgres": "SELECT CAST(ARRAY[] AS INT[]) AS foo",
"duckdb": "SELECT CAST([] AS INT[]) AS foo",
},
)
self.validate_all(
"STRING_TO_ARRAY('xx~^~yy~^~zz', '~^~', 'yy')",
read={
@ -837,6 +841,30 @@ class TestPostgres(Validator):
"SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY a) FILTER(WHERE CAST(b AS BOOLEAN)) AS mean_value FROM (VALUES (0, 't')) AS fake_data(a, b)"
)
self.validate_all(
"SELECT JSON_OBJECT_AGG(k, v) FROM t",
write={
"postgres": "SELECT JSON_OBJECT_AGG(k, v) FROM t",
"duckdb": "SELECT JSON_GROUP_OBJECT(k, v) FROM t",
},
)
self.validate_all(
"SELECT JSONB_OBJECT_AGG(k, v) FROM t",
write={
"postgres": "SELECT JSONB_OBJECT_AGG(k, v) FROM t",
"duckdb": "SELECT JSON_GROUP_OBJECT(k, v) FROM t",
},
)
self.validate_all(
"SELECT DATE_BIN('30 days', timestamp_col, (SELECT MIN(TIMESTAMP) from table)) FROM table",
write={
"postgres": "SELECT DATE_BIN('30 days', timestamp_col, (SELECT MIN(TIMESTAMP) FROM table)) FROM table",
"duckdb": 'SELECT TIME_BUCKET(\'30 days\', timestamp_col, (SELECT MIN(TIMESTAMP) FROM "table")) FROM "table"',
},
)
def test_ddl(self):
# Checks that user-defined types are parsed into DataType instead of Identifier
self.parse_one("CREATE TABLE t (a udt)").this.expressions[0].args["kind"].assert_is(
@ -1060,7 +1088,8 @@ class TestPostgres(Validator):
"duckdb": "CREATE TABLE x (a UUID, b BLOB)",
"presto": "CREATE TABLE x (a UUID, b VARBINARY)",
"hive": "CREATE TABLE x (a UUID, b BINARY)",
"spark": "CREATE TABLE x (a UUID, b BINARY)",
"spark": "CREATE TABLE x (a STRING, b BINARY)",
"tsql": "CREATE TABLE x (a UNIQUEIDENTIFIER, b VARBINARY)",
},
)