Adding upstream version 26.14.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
539faf8d40
commit
dfe1cec38a
84 changed files with 63872 additions and 61909 deletions
|
@ -1,6 +1,6 @@
|
|||
from unittest import mock
|
||||
|
||||
from sqlglot import UnsupportedError, exp, parse_one
|
||||
from sqlglot import UnsupportedError, exp, parse_one, ParseError
|
||||
from sqlglot.optimizer.normalize_identifiers import normalize_identifiers
|
||||
from sqlglot.optimizer.qualify_columns import quote_identifiers
|
||||
from tests.dialects.test_dialect import Validator
|
||||
|
@ -1481,9 +1481,30 @@ class TestSnowflake(Validator):
|
|||
self.validate_identity("CREATE TAG cost_center ALLOWED_VALUES 'a', 'b'")
|
||||
self.validate_identity("CREATE WAREHOUSE x").this.assert_is(exp.Identifier)
|
||||
self.validate_identity("CREATE STREAMLIT x").this.assert_is(exp.Identifier)
|
||||
self.validate_identity(
|
||||
"CREATE TEMPORARY STAGE stage1 FILE_FORMAT=(TYPE=PARQUET)"
|
||||
).this.assert_is(exp.Table)
|
||||
self.validate_identity(
|
||||
"CREATE STAGE stage1 FILE_FORMAT='format1'",
|
||||
"CREATE STAGE stage1 FILE_FORMAT=(FORMAT_NAME='format1')",
|
||||
)
|
||||
self.validate_identity("CREATE STAGE stage1 FILE_FORMAT=(FORMAT_NAME=stage1.format1)")
|
||||
self.validate_identity("CREATE STAGE stage1 FILE_FORMAT=(FORMAT_NAME='stage1.format1')")
|
||||
self.validate_identity(
|
||||
"CREATE STAGE stage1 FILE_FORMAT=schema1.format1",
|
||||
"CREATE STAGE stage1 FILE_FORMAT=(FORMAT_NAME=schema1.format1)",
|
||||
)
|
||||
with self.assertRaises(ParseError):
|
||||
self.parse_one("CREATE STAGE stage1 FILE_FORMAT=123", dialect="snowflake")
|
||||
self.validate_identity(
|
||||
"CREATE STAGE s1 URL='s3://bucket-123' FILE_FORMAT=(TYPE='JSON') CREDENTIALS=(aws_key_id='test' aws_secret_key='test')"
|
||||
)
|
||||
self.validate_identity(
|
||||
"CREATE OR REPLACE TAG IF NOT EXISTS cost_center COMMENT='cost_center tag'"
|
||||
).this.assert_is(exp.Identifier)
|
||||
self.validate_identity(
|
||||
"CREATE TEMPORARY FILE FORMAT fileformat1 TYPE=PARQUET COMPRESSION=auto"
|
||||
).this.assert_is(exp.Table)
|
||||
self.validate_identity(
|
||||
"CREATE DYNAMIC TABLE product (pre_tax_profit, taxes, after_tax_profit) TARGET_LAG='20 minutes' WAREHOUSE=mywh AS SELECT revenue - cost, (revenue - cost) * tax_rate, (revenue - cost) * (1.0 - tax_rate) FROM staging_table"
|
||||
)
|
||||
|
@ -1499,9 +1520,6 @@ class TestSnowflake(Validator):
|
|||
self.validate_identity(
|
||||
"CREATE TABLE orders_clone_restore CLONE orders BEFORE (STATEMENT => '8e5d0ca9-005e-44e6-b858-a8f5b37c5726')"
|
||||
)
|
||||
self.validate_identity(
|
||||
"CREATE TABLE a (x DATE, y BIGINT) PARTITION BY (x) integration='q' auto_refresh=TRUE file_format=(type = parquet)"
|
||||
)
|
||||
self.validate_identity(
|
||||
"CREATE SCHEMA mytestschema_clone_restore CLONE testschema BEFORE (TIMESTAMP => TO_TIMESTAMP(40 * 365 * 86400))"
|
||||
)
|
||||
|
@ -1544,8 +1562,8 @@ class TestSnowflake(Validator):
|
|||
partition by (col1,col2,col3)
|
||||
location=@s2/logs/
|
||||
partition_type = user_specified
|
||||
file_format = (type = parquet)""",
|
||||
"CREATE EXTERNAL TABLE et2 (col1 DATE AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL1') AS DATE)), col2 VARCHAR AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL2') AS VARCHAR)), col3 DECIMAL(38, 0) AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL3') AS DECIMAL(38, 0)))) LOCATION @s2/logs/ PARTITION BY (col1, col2, col3) partition_type=user_specified file_format=(type = parquet)",
|
||||
file_format = (type = parquet compression = gzip binary_as_text = false)""",
|
||||
"CREATE EXTERNAL TABLE et2 (col1 DATE AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL1') AS DATE)), col2 VARCHAR AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL2') AS VARCHAR)), col3 DECIMAL(38, 0) AS (CAST(GET_PATH(PARSE_JSON(metadata$external_table_partition), 'COL3') AS DECIMAL(38, 0)))) PARTITION BY (col1, col2, col3) LOCATION=@s2/logs/ partition_type=user_specified FILE_FORMAT=(type=parquet compression=gzip binary_as_text=FALSE)",
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
|
@ -2092,6 +2110,15 @@ MATCH_RECOGNIZE (
|
|||
self.assertEqual(ast.this, "DATABASES")
|
||||
self.assertEqual(ast.args.get("scope_kind"), "ACCOUNT")
|
||||
|
||||
def test_show_file_formats(self):
|
||||
self.validate_identity("SHOW FILE FORMATS")
|
||||
self.validate_identity("SHOW FILE FORMATS LIKE 'foo' IN DATABASE db1")
|
||||
self.validate_identity("SHOW FILE FORMATS LIKE 'foo' IN SCHEMA db1.schema1")
|
||||
|
||||
ast = parse_one("SHOW FILE FORMATS IN ACCOUNT", read="snowflake")
|
||||
self.assertEqual(ast.this, "FILE FORMATS")
|
||||
self.assertEqual(ast.args.get("scope_kind"), "ACCOUNT")
|
||||
|
||||
def test_show_functions(self):
|
||||
self.validate_identity("SHOW FUNCTIONS")
|
||||
self.validate_identity("SHOW FUNCTIONS LIKE 'foo' IN CLASS bla")
|
||||
|
@ -2109,6 +2136,15 @@ MATCH_RECOGNIZE (
|
|||
self.assertEqual(ast.this, "PROCEDURES")
|
||||
self.assertEqual(ast.args.get("scope_kind"), "ACCOUNT")
|
||||
|
||||
def test_show_stages(self):
|
||||
self.validate_identity("SHOW STAGES")
|
||||
self.validate_identity("SHOW STAGES LIKE 'foo' IN DATABASE db1")
|
||||
self.validate_identity("SHOW STAGES LIKE 'foo' IN SCHEMA db1.schema1")
|
||||
|
||||
ast = parse_one("SHOW STAGES IN ACCOUNT", read="snowflake")
|
||||
self.assertEqual(ast.this, "STAGES")
|
||||
self.assertEqual(ast.args.get("scope_kind"), "ACCOUNT")
|
||||
|
||||
def test_show_warehouses(self):
|
||||
self.validate_identity("SHOW WAREHOUSES")
|
||||
self.validate_identity("SHOW WAREHOUSES LIKE 'foo' WITH PRIVILEGES USAGE, MODIFY")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue