Correctly override node in aggregateBinaryExpr #689
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #676 we added support for query push down for BinaryExp where it is a literal and either a VectorSelector or a subset of AggregateExprs. However this initial implementation introduced a bug for AggregateExprs. Specifically it was doing the query push down but not doing the node replace properly -- such that the literal operation was done twice (e.g. add twice, multiply twice, etc.).
This patch will have the aggregateBinaryExpr replace the Binary Expr (i.e.
(max(foo) * 100)
) with the "filled in" AggregateExpr -- such that the re-execution of the aggregation still occurs without re-doing the literal calculation.Fixes #688