diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-03-07 18:09:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-03-07 18:09:31 +0000 |
commit | ebec59cc5cb6c6856705bf82ced7fe8d9f75b0d0 (patch) | |
tree | eacad0719c5f2d113f221000ec126226f0d7fc9e /sqlglot/optimizer/pushdown_projections.py | |
parent | Releasing debian version 11.2.3-1. (diff) | |
download | sqlglot-ebec59cc5cb6c6856705bf82ced7fe8d9f75b0d0.tar.xz sqlglot-ebec59cc5cb6c6856705bf82ced7fe8d9f75b0d0.zip |
Merging upstream version 11.3.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sqlglot/optimizer/pushdown_projections.py')
-rw-r--r-- | sqlglot/optimizer/pushdown_projections.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sqlglot/optimizer/pushdown_projections.py b/sqlglot/optimizer/pushdown_projections.py index 3f360f9..07a1b70 100644 --- a/sqlglot/optimizer/pushdown_projections.py +++ b/sqlglot/optimizer/pushdown_projections.py @@ -13,7 +13,7 @@ SELECT_ALL = object() DEFAULT_SELECTION = lambda: alias("1", "_") -def pushdown_projections(expression, schema=None): +def pushdown_projections(expression, schema=None, remove_unused_selections=True): """ Rewrite sqlglot AST to remove unused columns projections. @@ -26,6 +26,7 @@ def pushdown_projections(expression, schema=None): Args: expression (sqlglot.Expression): expression to optimize + remove_unused_selections (bool): remove selects that are unused Returns: sqlglot.Expression: optimized expression """ @@ -57,7 +58,8 @@ def pushdown_projections(expression, schema=None): ] if isinstance(scope.expression, exp.Select): - _remove_unused_selections(scope, parent_selections, schema) + if remove_unused_selections: + _remove_unused_selections(scope, parent_selections, schema) # Group columns by source name selects = defaultdict(set) |