Skip to content

Commit f7e22d4

Browse files
committed
Fix: don't change query if no join marks in eliminate_join_marks, fixes #4721
1 parent 27ec74b commit f7e22d4

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

sqlglot/transforms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,8 @@ def eliminate_join_marks(expression: exp.Expression) -> exp.Expression:
934934
new_from_name = list(only_old_joins)[0]
935935
query.set("from", exp.From(this=old_joins[new_from_name].this))
936936

937-
query.set("joins", list(new_joins.values()))
937+
if new_joins:
938+
query.set("joins", list(new_joins.values()))
938939

939940
if not where.this:
940941
where.pop()

tests/test_transforms.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,13 @@ def test_remove_precision_parameterized_types(self):
174174

175175
def test_eliminate_join_marks(self):
176176
for dialect in ("oracle", "redshift"):
177+
# No join marks => query remains unaffected
178+
self.validate(
179+
eliminate_join_marks,
180+
"SELECT a.f1, b.f2 FROM a JOIN b ON a.id = b.id WHERE a.blabla = 'a'",
181+
"SELECT a.f1, b.f2 FROM a JOIN b ON a.id = b.id WHERE a.blabla = 'a'",
182+
dialect,
183+
)
177184
self.validate(
178185
eliminate_join_marks,
179186
"SELECT T1.d, T2.c FROM T1, T2 WHERE T1.x = T2.x (+) and T2.y (+) > 5",

0 commit comments

Comments
 (0)