1
0
Fork 0

Merging upstream version 26.28.1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-06-15 10:36:04 +02:00
parent 893214206a
commit c79efa667c
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
96 changed files with 58442 additions and 56422 deletions

View file

@ -17,7 +17,8 @@ class TestTransforms(unittest.TestCase):
def validate(self, transform, sql, target, dialect=None):
with self.subTest(f"{dialect} - {sql}"):
self.assertEqual(
parse_one(sql, dialect=dialect).transform(transform).sql(dialect=dialect), target
parse_one(sql, dialect=dialect).transform(transform).sql(dialect=dialect),
target,
)
def test_unalias_group(self):
@ -274,6 +275,42 @@ class TestTransforms(unittest.TestCase):
== "SELECT a.id FROM a LEFT JOIN b ON a.id = b.id AND b.d = const"
)
# validate parens
self.validate(
eliminate_join_marks,
"select t1.a, t2.b from t1, t2 where (1 = 1) and (t1.id = t2.id1 (+))",
"SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON t1.id = t2.id1 WHERE (1 = 1)",
dialect,
)
# validate a CASE
self.validate(
eliminate_join_marks,
"select t1.a, t2.b from t1, t2 where t1.id = case when t2.id (+) = 'n/a' then null else t2.id (+) end",
"SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON t1.id = CASE WHEN t2.id = 'n/a' THEN NULL ELSE t2.id END",
dialect,
)
# validate OR
self.validate(
eliminate_join_marks,
"select t1.a, t2.b from t1, t2 where t1.id = t2.id1 (+) or t1.id = t2.id2 (+)",
"SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON t1.id = t2.id1 OR t1.id = t2.id2",
dialect,
)
# validate knockout
script = """
SELECT c.customer_name,
(SELECT MAX(o.order_date)
FROM orders o
WHERE o.customer_id(+) = c.customer_id) AS latest_order_date
FROM customers c
"""
self.assertRaises(
AssertionError, eliminate_join_marks, parse_one(script, dialect=dialect)
)
def test_eliminate_window_clause(self):
self.validate(
eliminate_window_clause,