summaryrefslogtreecommitdiffstats
path: root/sqlglot/optimizer/scope.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-07-10 05:36:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-07-10 05:36:29 +0000
commit49af28576db02470fe1d2de04e3901309b60c2e4 (patch)
tree63e63864ce7f62e9288ccb9ee438eddba08c6d49 /sqlglot/optimizer/scope.py
parentReleasing debian version 17.2.0-1. (diff)
downloadsqlglot-49af28576db02470fe1d2de04e3901309b60c2e4.tar.xz
sqlglot-49af28576db02470fe1d2de04e3901309b60c2e4.zip
Merging upstream version 17.3.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sqlglot/optimizer/scope.py')
-rw-r--r--sqlglot/optimizer/scope.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/sqlglot/optimizer/scope.py b/sqlglot/optimizer/scope.py
index bc649e4..7dcfb37 100644
--- a/sqlglot/optimizer/scope.py
+++ b/sqlglot/optimizer/scope.py
@@ -548,9 +548,6 @@ def _traverse_scope(scope):
yield from _traverse_union(scope)
elif isinstance(scope.expression, exp.Subquery):
yield from _traverse_subqueries(scope)
- elif isinstance(scope.expression, exp.Table):
- # This case corresponds to a "join construct", i.e. (tbl1 JOIN tbl2 ON ..)
- yield from _traverse_tables(scope)
elif isinstance(scope.expression, exp.UDTF):
pass
else:
@@ -632,8 +629,9 @@ def _traverse_tables(scope):
if from_:
expressions.append(from_.this)
- for join in scope.expression.args.get("joins") or []:
- expressions.append(join.this)
+ for expression in (scope.expression, *scope.find_all(exp.Table)):
+ for join in expression.args.get("joins") or []:
+ expressions.append(join.this)
if isinstance(scope.expression, exp.Table):
expressions.append(scope.expression)