Merging upstream version 17.9.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
2bf6699c56
commit
9777880e00
87 changed files with 45907 additions and 42511 deletions
|
@ -242,7 +242,10 @@ class TestOptimizer(unittest.TestCase):
|
|||
"CREATE FUNCTION `udfs`.`myTest`(`x` FLOAT64) AS (1)",
|
||||
)
|
||||
|
||||
self.check_file("qualify_columns", qualify_columns, execute=True, schema=self.schema)
|
||||
self.check_file(
|
||||
"qualify_columns", qualify_columns, execute=True, schema=self.schema, set_dialect=True
|
||||
)
|
||||
self.check_file("qualify_columns_ddl", qualify_columns, schema=self.schema)
|
||||
|
||||
def test_qualify_columns__with_invisible(self):
|
||||
schema = MappingSchema(self.schema, {"x": {"a"}, "y": {"b"}, "z": {"b"}})
|
||||
|
@ -448,6 +451,23 @@ FROM READ_CSV('tests/fixtures/optimizer/tpc-h/nation.csv.gz', 'delimiter', '|')
|
|||
)
|
||||
self.assertEqual(set(scopes[3].sources), {""})
|
||||
|
||||
inner_query = "SELECT bar FROM baz"
|
||||
for udtf in (f"UNNEST(({inner_query}))", f"LATERAL ({inner_query})"):
|
||||
sql = f"SELECT a FROM foo CROSS JOIN {udtf}"
|
||||
expression = parse_one(sql)
|
||||
|
||||
for scopes in traverse_scope(expression), list(build_scope(expression).traverse()):
|
||||
self.assertEqual(len(scopes), 3)
|
||||
|
||||
self.assertEqual(scopes[0].expression.sql(), inner_query)
|
||||
self.assertEqual(set(scopes[0].sources), {"baz"})
|
||||
|
||||
self.assertEqual(scopes[1].expression.sql(), udtf)
|
||||
self.assertEqual(set(scopes[1].sources), {"", "foo"}) # foo is a lateral source
|
||||
|
||||
self.assertEqual(scopes[2].expression.sql(), f"SELECT a FROM foo CROSS JOIN {udtf}")
|
||||
self.assertEqual(set(scopes[2].sources), {"", "foo"})
|
||||
|
||||
@patch("sqlglot.optimizer.scope.logger")
|
||||
def test_scope_warning(self, logger):
|
||||
self.assertEqual(len(traverse_scope(parse_one("WITH q AS (@y) SELECT * FROM q"))), 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue