diff options
Diffstat (limited to 'sqlglot/optimizer/eliminate_subqueries.py')
-rw-r--r-- | sqlglot/optimizer/eliminate_subqueries.py | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/sqlglot/optimizer/eliminate_subqueries.py b/sqlglot/optimizer/eliminate_subqueries.py index 1ab7768..1230cea 100644 --- a/sqlglot/optimizer/eliminate_subqueries.py +++ b/sqlglot/optimizer/eliminate_subqueries.py @@ -95,9 +95,6 @@ def eliminate_subqueries(expression): def _eliminate(scope, existing_ctes, taken): - if scope.is_union: - return _eliminate_union(scope, existing_ctes, taken) - if scope.is_derived_table: return _eliminate_derived_table(scope, existing_ctes, taken) @@ -105,36 +102,6 @@ def _eliminate(scope, existing_ctes, taken): return _eliminate_cte(scope, existing_ctes, taken) -def _eliminate_union(scope, existing_ctes, taken): - duplicate_cte_alias = existing_ctes.get(scope.expression) - - alias = duplicate_cte_alias or find_new_name(taken=taken, base="cte") - - taken[alias] = scope - - # Try to maintain the selections - expressions = scope.expression.selects - selects = [ - exp.alias_(exp.column(e.alias_or_name, table=alias), alias=e.alias_or_name, copy=False) - for e in expressions - if e.alias_or_name - ] - # If not all selections have an alias, just select * - if len(selects) != len(expressions): - selects = ["*"] - - scope.expression.replace( - exp.select(*selects).from_(exp.alias_(exp.table_(alias), alias=alias, copy=False)) - ) - - if not duplicate_cte_alias: - existing_ctes[scope.expression] = alias - return exp.CTE( - this=scope.expression, - alias=exp.TableAlias(this=exp.to_identifier(alias)), - ) - - def _eliminate_derived_table(scope, existing_ctes, taken): # This makes sure that we don't: # - drop the "pivot" arg from a pivoted subquery |