Description
AggregateJoinTransposeRule.EXTENDED can push down aggregate functions into the join.
For Distinct Count (and other distinct aggregate functions) this should not be performed the same way as for simple count, since distinct count is not a decomposable function. [1]
While this can be done in theory, by adding the distinct column to the list of groups in below aggregate[2], I want to fix the buggy behavior first, before trying to improve the existing rule.
[1] Dynamic Programming: The Next Step, M. Eich, G. Moerkotte (https://ub-madoc.bib.uni-mannheim.de/37228/1/main.pdf)
[2] Including Group-By in Query Optimization, S. Chaudhuri, K. Shim (https://pdfs.semanticscholar.org/3079/5447cec18753254edbbd7839f0afa58b2a39.pdf)
Attachments
Issue Links
- duplicates
-
CALCITE-2249 AggregateJoinTransposeRule generates inequivalent nodes if Aggregate relNode contains distinct aggregate function.
- Closed