diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-12-19 11:01:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-12-19 11:01:55 +0000 |
commit | f1c2dbe3b17a0d5edffbb65b85b642d0bb2756c5 (patch) | |
tree | 5dce0fe2a11381761496eb973c20750f44db56d5 /sqlglot/optimizer/eliminate_subqueries.py | |
parent | Releasing debian version 20.1.0-1. (diff) | |
download | sqlglot-f1c2dbe3b17a0d5edffbb65b85b642d0bb2756c5.tar.xz sqlglot-f1c2dbe3b17a0d5edffbb65b85b642d0bb2756c5.zip |
Merging upstream version 20.3.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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 |