diff options
Diffstat (limited to 'sqlglot/optimizer/qualify_columns.py')
-rw-r--r-- | sqlglot/optimizer/qualify_columns.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sqlglot/optimizer/qualify_columns.py b/sqlglot/optimizer/qualify_columns.py index a6397ae..1656727 100644 --- a/sqlglot/optimizer/qualify_columns.py +++ b/sqlglot/optimizer/qualify_columns.py @@ -4,7 +4,6 @@ import itertools import typing as t from sqlglot import alias, exp -from sqlglot._typing import E from sqlglot.dialects.dialect import Dialect, DialectType from sqlglot.errors import OptimizeError from sqlglot.helper import seq_get @@ -12,6 +11,9 @@ from sqlglot.optimizer.scope import Scope, build_scope, traverse_scope, walk_in_ from sqlglot.optimizer.simplify import simplify_parens from sqlglot.schema import Schema, ensure_schema +if t.TYPE_CHECKING: + from sqlglot._typing import E + def qualify_columns( expression: exp.Expression, @@ -210,7 +212,7 @@ def _expand_alias_refs(scope: Scope, resolver: Resolver) -> None: if not node: return - for column, *_ in walk_in_scope(node): + for column, *_ in walk_in_scope(node, prune=lambda node, *_: node.is_star): if not isinstance(column, exp.Column): continue @@ -525,6 +527,7 @@ def qualify_outputs(scope_or_expression: Scope | exp.Expression) -> None: selection = alias( selection, alias=selection.output_name or f"_col_{i}", + copy=False, ) if aliased_column: selection.set("alias", exp.to_identifier(aliased_column)) |