Adding upstream version 26.12.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
aa70b5e889
commit
4118582692
70 changed files with 1134 additions and 340 deletions
|
@ -15,6 +15,7 @@ from sqlglot import (
|
|||
from sqlglot.helper import logger as helper_logger
|
||||
from sqlglot.parser import logger as parser_logger
|
||||
from tests.dialects.test_dialect import Validator
|
||||
from sqlglot.optimizer.annotate_types import annotate_types
|
||||
|
||||
|
||||
class TestBigQuery(Validator):
|
||||
|
@ -196,6 +197,9 @@ LANGUAGE js AS
|
|||
self.validate_identity("CAST(x AS TIMESTAMPTZ)", "CAST(x AS TIMESTAMP)")
|
||||
self.validate_identity("CAST(x AS RECORD)", "CAST(x AS STRUCT)")
|
||||
self.validate_identity("SELECT * FROM x WHERE x.y >= (SELECT MAX(a) FROM b-c) - 20")
|
||||
self.validate_identity(
|
||||
"SELECT FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', CURRENT_TIMESTAMP(), 'Europe/Berlin') AS ts"
|
||||
)
|
||||
self.validate_identity(
|
||||
"SELECT cars, apples FROM some_table PIVOT(SUM(total_counts) FOR products IN ('general.cars' AS cars, 'food.apples' AS apples))"
|
||||
)
|
||||
|
@ -317,6 +321,13 @@ LANGUAGE js AS
|
|||
"SELECT CAST(1 AS INT64)",
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"SELECT DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY)",
|
||||
write={
|
||||
"bigquery": "SELECT DATE_SUB(CURRENT_DATE, INTERVAL '2' DAY)",
|
||||
"databricks": "SELECT DATE_ADD(CURRENT_DATE, -2)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"SELECT DATE_SUB(DATE '2008-12-25', INTERVAL 5 DAY)",
|
||||
write={
|
||||
|
@ -1309,8 +1320,8 @@ LANGUAGE js AS
|
|||
"mysql": "DATE_ADD(CURRENT_DATE, INTERVAL '-1' DAY)",
|
||||
"postgres": "CURRENT_DATE + INTERVAL '-1 DAY'",
|
||||
"presto": "DATE_ADD('DAY', CAST('-1' AS BIGINT), CURRENT_DATE)",
|
||||
"hive": "DATE_ADD(CURRENT_DATE, '-1')",
|
||||
"spark": "DATE_ADD(CURRENT_DATE, '-1')",
|
||||
"hive": "DATE_ADD(CURRENT_DATE, -1)",
|
||||
"spark": "DATE_ADD(CURRENT_DATE, -1)",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
|
@ -2356,3 +2367,18 @@ OPTIONS (
|
|||
"STRING_AGG(DISTINCT a ORDER BY b DESC, c DESC LIMIT 10)",
|
||||
"STRING_AGG(DISTINCT a, ',' ORDER BY b DESC, c DESC LIMIT 10)",
|
||||
)
|
||||
|
||||
def test_annotate_timestamps(self):
|
||||
sql = """
|
||||
SELECT
|
||||
CURRENT_TIMESTAMP() AS curr_ts,
|
||||
TIMESTAMP_SECONDS(2) AS ts_seconds,
|
||||
PARSE_TIMESTAMP('%c', 'Thu Dec 25 07:30:00 2008', 'UTC') AS parsed_ts,
|
||||
TIMESTAMP_ADD(TIMESTAMP "2008-12-25 15:30:00+00", INTERVAL 10 MINUTE) AS ts_add,
|
||||
TIMESTAMP_SUB(TIMESTAMP "2008-12-25 15:30:00+00", INTERVAL 10 MINUTE) AS ts_sub,
|
||||
"""
|
||||
|
||||
annotated = annotate_types(self.parse_one(sql), dialect="bigquery")
|
||||
|
||||
for select in annotated.selects:
|
||||
self.assertEqual(select.type.sql("bigquery"), "TIMESTAMP")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue