diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2025-01-27 16:31:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2025-01-27 16:31:23 +0000 |
commit | 886e522786b50d8cb126baacbd1eaf92861832ec (patch) | |
tree | 6d9736731779fe0f981e8a3692c9eeb37e40fbf3 /tests/dialects/test_snowflake.py | |
parent | Releasing debian version 26.2.1-1. (diff) | |
download | sqlglot-886e522786b50d8cb126baacbd1eaf92861832ec.tar.xz sqlglot-886e522786b50d8cb126baacbd1eaf92861832ec.zip |
Merging upstream version 26.3.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/dialects/test_snowflake.py')
-rw-r--r-- | tests/dialects/test_snowflake.py | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/tests/dialects/test_snowflake.py b/tests/dialects/test_snowflake.py index 5c0cc01..cb38af7 100644 --- a/tests/dialects/test_snowflake.py +++ b/tests/dialects/test_snowflake.py @@ -36,7 +36,6 @@ class TestSnowflake(Validator): self.validate_identity("SELECT CAST(obj AS OBJECT(x CHAR) RENAME FIELDS)") self.validate_identity("SELECT CAST(obj AS OBJECT(x CHAR, y VARCHAR) ADD FIELDS)") self.validate_identity("SELECT TO_TIMESTAMP(123.4)").selects[0].assert_is(exp.Anonymous) - self.validate_identity("SELECT TO_TIME(x) FROM t") self.validate_identity("SELECT TO_TIMESTAMP(x) FROM t") self.validate_identity("SELECT TO_TIMESTAMP_NTZ(x) FROM t") self.validate_identity("SELECT TO_TIMESTAMP_LTZ(x) FROM t") @@ -106,6 +105,9 @@ class TestSnowflake(Validator): "SELECT * FROM DATA AS DATA_L ASOF JOIN DATA AS DATA_R MATCH_CONDITION (DATA_L.VAL > DATA_R.VAL) ON DATA_L.ID = DATA_R.ID" ) self.validate_identity( + """SELECT TO_TIMESTAMP('2025-01-16T14:45:30.123+0500', 'yyyy-mm-DD"T"hh24:mi:ss.ff3TZHTZM')""" + ) + self.validate_identity( "WITH t (SELECT 1 AS c) SELECT c FROM t", "WITH t AS (SELECT 1 AS c) SELECT c FROM t", ) @@ -295,6 +297,13 @@ class TestSnowflake(Validator): ) self.validate_all( + "SELECT TO_TIMESTAMP('2025-01-16 14:45:30.123', 'yyyy-mm-DD hh24:mi:ss.ff6')", + write={ + "": "SELECT STR_TO_TIME('2025-01-16 14:45:30.123', '%Y-%m-%d %H:%M:%S.%f')", + "snowflake": "SELECT TO_TIMESTAMP('2025-01-16 14:45:30.123', 'yyyy-mm-DD hh24:mi:ss.ff6')", + }, + ) + self.validate_all( "ARRAY_CONSTRUCT_COMPACT(1, null, 2)", write={ "spark": "ARRAY_COMPACT(ARRAY(1, NULL, 2))", @@ -721,13 +730,6 @@ class TestSnowflake(Validator): }, ) self.validate_all( - "SELECT TO_TIME('12:05:00')", - write={ - "bigquery": "SELECT CAST('12:05:00' AS TIME)", - "snowflake": "SELECT CAST('12:05:00' AS TIME)", - }, - ) - self.validate_all( "SELECT TO_TIMESTAMP('04/05/2013 01:02:03', 'mm/DD/yyyy hh24:mi:ss')", read={ "bigquery": "SELECT PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S', '04/05/2013 01:02:03')", @@ -1286,6 +1288,37 @@ class TestSnowflake(Validator): }, ) + self.validate_identity("SELECT TO_TIME(x) FROM t") + self.validate_all( + "SELECT TO_TIME('12:05:00')", + write={ + "bigquery": "SELECT CAST('12:05:00' AS TIME)", + "snowflake": "SELECT CAST('12:05:00' AS TIME)", + "duckdb": "SELECT CAST('12:05:00' AS TIME)", + }, + ) + self.validate_all( + "SELECT TO_TIME(CONVERT_TIMEZONE('UTC', 'US/Pacific', '2024-08-06 09:10:00.000')) AS pst_time", + write={ + "snowflake": "SELECT TO_TIME(CONVERT_TIMEZONE('UTC', 'US/Pacific', '2024-08-06 09:10:00.000')) AS pst_time", + "duckdb": "SELECT CAST(CAST('2024-08-06 09:10:00.000' AS TIMESTAMP) AT TIME ZONE 'UTC' AT TIME ZONE 'US/Pacific' AS TIME) AS pst_time", + }, + ) + self.validate_all( + "SELECT TO_TIME('11.15.00', 'hh24.mi.ss')", + write={ + "snowflake": "SELECT TO_TIME('11.15.00', 'hh24.mi.ss')", + "duckdb": "SELECT CAST(STRPTIME('11.15.00', '%H.%M.%S') AS TIME)", + }, + ) + self.validate_all( + "SELECT TRY_TO_TIME('11.15.00', 'hh24.mi.ss')", + write={ + "snowflake": "SELECT TRY_TO_TIME('11.15.00', 'hh24.mi.ss')", + "duckdb": "SELECT CAST(STRPTIME('11.15.00', '%H.%M.%S') AS TIME)", + }, + ) + def test_semi_structured_types(self): self.validate_identity("SELECT CAST(a AS VARIANT)") self.validate_identity("SELECT CAST(a AS ARRAY)") |