summaryrefslogtreecommitdiffstats
path: root/sqlglot/optimizer/eliminate_subqueries.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-12-19 11:01:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-12-19 11:01:55 +0000
commitf1c2dbe3b17a0d5edffbb65b85b642d0bb2756c5 (patch)
tree5dce0fe2a11381761496eb973c20750f44db56d5 /sqlglot/optimizer/eliminate_subqueries.py
parentReleasing debian version 20.1.0-1. (diff)
downloadsqlglot-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.py33
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