Adding upstream version 25.26.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
7af32ea9ec
commit
dfac4c492f
117 changed files with 49296 additions and 47316 deletions
|
@ -602,6 +602,16 @@ SELECT :with,WITH :expressions,CTE :this,UNION :this,SELECT :expressions,1,:expr
|
|||
"WITH data AS (SELECT 1 AS id, 2 AS my_id, 'a' AS name, 'b' AS full_name) SELECT data.id AS my_id, CONCAT(data.id, data.name) AS full_name FROM data WHERE data.id = 1 GROUP BY data.id, CONCAT(data.id, data.name) HAVING data.id = 1",
|
||||
)
|
||||
|
||||
# Edge case: BigQuery shouldn't expand aliases in complex expressions
|
||||
sql = "WITH data AS (SELECT 1 AS id) SELECT FUNC(id) AS id FROM data GROUP BY FUNC(id)"
|
||||
self.assertEqual(
|
||||
optimizer.qualify_columns.qualify_columns(
|
||||
parse_one(sql, dialect="bigquery"),
|
||||
schema=MappingSchema(schema=unused_schema, dialect="bigquery"),
|
||||
).sql(),
|
||||
"WITH data AS (SELECT 1 AS id) SELECT FUNC(data.id) AS id FROM data GROUP BY FUNC(data.id)",
|
||||
)
|
||||
|
||||
def test_optimize_joins(self):
|
||||
self.check_file(
|
||||
"optimize_joins",
|
||||
|
@ -779,6 +789,18 @@ FROM READ_CSV('tests/fixtures/optimizer/tpc-h/nation.csv.gz', 'delimiter', '|')
|
|||
self.assertEqual(scopes[2].expression.sql(), f"SELECT a FROM foo CROSS JOIN {udtf}")
|
||||
self.assertEqual(set(scopes[2].sources), {"", "foo"})
|
||||
|
||||
# Check DML statement scopes
|
||||
sql = (
|
||||
"UPDATE customers SET total_spent = (SELECT 1 FROM t1) WHERE EXISTS (SELECT 1 FROM t2)"
|
||||
)
|
||||
self.assertEqual(len(traverse_scope(parse_one(sql))), 3)
|
||||
|
||||
sql = "UPDATE tbl1 SET col = 1 WHERE EXISTS (SELECT 1 FROM tbl2 WHERE tbl1.id = tbl2.id)"
|
||||
self.assertEqual(len(traverse_scope(parse_one(sql))), 1)
|
||||
|
||||
sql = "UPDATE tbl1 SET col = 0"
|
||||
self.assertEqual(len(traverse_scope(parse_one(sql))), 0)
|
||||
|
||||
@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