Fixed #28477 -- Stripped unused annotations on aggregation.

Also avoid an unnecessary pushdown when aggregating over a query that doesn't
have aggregate annotations.
This commit is contained in:
Simon Charette 2022-11-06 00:28:33 -04:00 committed by Mariusz Felisiak
parent 321ecb40f4
commit 59bea9efd2
5 changed files with 109 additions and 23 deletions

View file

@ -405,6 +405,12 @@ class BaseExpression:
)
return clone
def get_refs(self):
refs = set()
for expr in self.get_source_expressions():
refs |= expr.get_refs()
return refs
def copy(self):
return copy.copy(self)
@ -1167,6 +1173,9 @@ class Ref(Expression):
# just a reference to the name of `source`.
return self
def get_refs(self):
return {self.refs}
def relabeled_clone(self, relabels):
return self