Adding upstream version 23.13.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
5d33af745d
commit
e47608846f
85 changed files with 53899 additions and 50390 deletions
|
@ -312,8 +312,32 @@ class TestPostgres(Validator):
|
|||
"MERGE INTO x USING (SELECT id) AS y ON a = b WHEN MATCHED THEN UPDATE SET x.a = y.b WHEN NOT MATCHED THEN INSERT (a, b) VALUES (y.a, y.b)",
|
||||
"MERGE INTO x USING (SELECT id) AS y ON a = b WHEN MATCHED THEN UPDATE SET a = y.b WHEN NOT MATCHED THEN INSERT (a, b) VALUES (y.a, y.b)",
|
||||
)
|
||||
self.validate_identity("SELECT * FROM t1*", "SELECT * FROM t1")
|
||||
self.validate_identity(
|
||||
"SELECT * FROM t1*",
|
||||
"SELECT * FROM t1",
|
||||
)
|
||||
self.validate_identity(
|
||||
"SELECT SUBSTRING('afafa' for 1)",
|
||||
"SELECT SUBSTRING('afafa' FROM 1 FOR 1)",
|
||||
)
|
||||
self.validate_identity(
|
||||
"CAST(x AS INT8)",
|
||||
"CAST(x AS BIGINT)",
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"SELECT REGEXP_REPLACE('mr .', '[^a-zA-Z]', '', 'g')",
|
||||
write={
|
||||
"duckdb": "SELECT REGEXP_REPLACE('mr .', '[^a-zA-Z]', '', 'g')",
|
||||
"postgres": "SELECT REGEXP_REPLACE('mr .', '[^a-zA-Z]', '', 'g')",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"CREATE TABLE t (c INT)",
|
||||
read={
|
||||
"mysql": "CREATE TABLE t (c INT COMMENT 'comment 1') COMMENT = 'comment 2'",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
'SELECT * FROM "test_table" ORDER BY RANDOM() LIMIT 5',
|
||||
write={
|
||||
|
@ -449,7 +473,7 @@ class TestPostgres(Validator):
|
|||
write={
|
||||
"postgres": "SELECT EXTRACT(minute FROM CAST('2023-01-04 04:05:06.789' AS TIMESTAMP))",
|
||||
"redshift": "SELECT EXTRACT(minute FROM CAST('2023-01-04 04:05:06.789' AS TIMESTAMP))",
|
||||
"snowflake": "SELECT DATE_PART(minute, CAST('2023-01-04 04:05:06.789' AS TIMESTAMPNTZ))",
|
||||
"snowflake": "SELECT DATE_PART(minute, CAST('2023-01-04 04:05:06.789' AS TIMESTAMP))",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
|
@ -660,6 +684,16 @@ class TestPostgres(Validator):
|
|||
)
|
||||
self.assertIsInstance(self.parse_one("id::UUID"), exp.Cast)
|
||||
|
||||
self.validate_identity(
|
||||
"COPY tbl (col1, col2) FROM 'file' WITH (FORMAT format, HEADER MATCH, FREEZE TRUE)"
|
||||
)
|
||||
self.validate_identity(
|
||||
"COPY tbl (col1, col2) TO 'file' WITH (FORMAT format, HEADER MATCH, FREEZE TRUE)"
|
||||
)
|
||||
self.validate_identity(
|
||||
"COPY (SELECT * FROM t) TO 'file' WITH (FORMAT format, HEADER MATCH, FREEZE TRUE)"
|
||||
)
|
||||
|
||||
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(
|
||||
|
@ -676,6 +710,7 @@ class TestPostgres(Validator):
|
|||
cdef.args["kind"].assert_is(exp.DataType)
|
||||
self.assertEqual(expr.sql(dialect="postgres"), "CREATE TABLE t (x INTERVAL DAY)")
|
||||
|
||||
self.validate_identity("CREATE INDEX IF NOT EXISTS ON t(c)")
|
||||
self.validate_identity("CREATE INDEX et_vid_idx ON et(vid) INCLUDE (fid)")
|
||||
self.validate_identity("CREATE INDEX idx_x ON x USING BTREE(x, y) WHERE (NOT y IS NULL)")
|
||||
self.validate_identity("CREATE TABLE test (elems JSONB[])")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue