From 5f8be2e0852f3c925fb873a48946caee3050899f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 31 Jan 2024 06:44:37 +0100 Subject: Adding upstream version 20.11.0. Signed-off-by: Daniel Baumann --- tests/test_optimizer.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'tests/test_optimizer.py') diff --git a/tests/test_optimizer.py b/tests/test_optimizer.py index 3f96a0e..d0ef8aa 100644 --- a/tests/test_optimizer.py +++ b/tests/test_optimizer.py @@ -262,7 +262,7 @@ class TestOptimizer(unittest.TestCase): ), dialect="bigquery", ).sql(), - 'WITH "x" AS (SELECT "y"."a" AS "a" FROM "DB"."y" AS "y" CROSS JOIN "a"."b"."INFORMATION_SCHEMA"."COLUMNS" AS "COLUMNS") SELECT "x"."a" AS "a" FROM "x"', + 'WITH "x" AS (SELECT "y"."a" AS "a" FROM "DB"."y" AS "y" CROSS JOIN "a"."b"."INFORMATION_SCHEMA"."COLUMNS" AS "COLUMNS") SELECT "x"."a" AS "a" FROM "x" AS "x"', ) self.assertEqual( @@ -550,18 +550,26 @@ FROM READ_CSV('tests/fixtures/optimizer/tpc-h/nation.csv.gz', 'delimiter', '|') def test_struct_type_annotation(self): tests = { - "SELECT STRUCT(1 AS col)": "STRUCT", - "SELECT STRUCT(1 AS col, 2.5 AS row)": "STRUCT", - "SELECT STRUCT(1)": "STRUCT", - "SELECT STRUCT(1 AS col, 2.5 AS row, struct(3.5 AS inner_col, 4 AS inner_row) AS nested_struct)": "STRUCT>", - "SELECT STRUCT(1 AS col, 2.5, ARRAY[1, 2, 3] AS nested_array, 'foo')": "STRUCT, VARCHAR>", - "SELECT STRUCT(1, 2.5, 'bar')": "STRUCT", - 'SELECT STRUCT(1 AS "CaseSensitive")': 'STRUCT<"CaseSensitive" INT>', + ("SELECT STRUCT(1 AS col)", "spark"): "STRUCT", + ("SELECT STRUCT(1 AS col, 2.5 AS row)", "spark"): "STRUCT", + ("SELECT STRUCT(1)", "bigquery"): "STRUCT", + ( + "SELECT STRUCT(1 AS col, 2.5 AS row, struct(3.5 AS inner_col, 4 AS inner_row) AS nested_struct)", + "spark", + ): "STRUCT>", + ( + "SELECT STRUCT(1 AS col, 2.5, ARRAY[1, 2, 3] AS nested_array, 'foo')", + "bigquery", + ): "STRUCT, VARCHAR>", + ("SELECT STRUCT(1, 2.5, 'bar')", "spark"): "STRUCT", + ('SELECT STRUCT(1 AS "CaseSensitive")', "spark"): 'STRUCT<"CaseSensitive" INT>', + ("SELECT STRUCT_PACK(a := 1, b := 2.5)", "duckdb"): "STRUCT", + ("SELECT ROW(1, 2.5, 'foo')", "presto"): "STRUCT", } - for sql, target_type in tests.items(): + for (sql, dialect), target_type in tests.items(): with self.subTest(sql): - expression = annotate_types(parse_one(sql)) + expression = annotate_types(parse_one(sql, read=dialect)) assert expression.expressions[0].is_type(target_type) def test_literal_type_annotation(self): -- cgit v1.2.3