summaryrefslogtreecommitdiffstats
path: root/tests/dialects/test_snowflake.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2025-01-27 16:31:23 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2025-01-27 16:31:23 +0000
commit886e522786b50d8cb126baacbd1eaf92861832ec (patch)
tree6d9736731779fe0f981e8a3692c9eeb37e40fbf3 /tests/dialects/test_snowflake.py
parentReleasing debian version 26.2.1-1. (diff)
downloadsqlglot-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.py49
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)")