[ https://issues.apache.org/jira/browse/CALCITE-2249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433566#comment-16433566 ]
jingzhang edited comment on CALCITE-2249 at 4/12/18 9:42 AM: ------------------------------------------------------------- Cool. I submit a pr [https://github.com/apache/calcite/pull/661] Please have a look at it. was (Author: jinyu.zj): Cool. I submit a pr [https://github.com/apache/calcite/pull/661|https://github.com/apache/calcite/pull/661.] Please have a look at it. > AggregateJoinTransposeRule generates inequivalent nodes if Aggregate relNode > contains distinct aggregate function. > ------------------------------------------------------------------------------------------------------------------ > > Key: CALCITE-2249 > URL: https://issues.apache.org/jira/browse/CALCITE-2249 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: jingzhang > Assignee: Julian Hyde > Priority: Major > > AggregateJoinTransposeRule generates inequivalent nodes if Aggregate relNode > contains distinct aggregate function. > T1 > ||a (String)||b (int)|| > |A|1| > |A|2| > |B|2| > |C|3| > > T2 > ||c(int)|| > |1| > |1| > |2| > For the following sql, > {code:java} > select count (distinct a) from t1, t2 where t1.b = t2.c > {code} > Aggregate would generate following node tree, which is inequivalent with > original node tree. > {code:java} > LogicalAggregate(group=[{}], EXPR$0=[$SUM0($4)]) > +- LogicalProject(b=[$0], EXPR$0=[$1], c=[$2], $f1=[$3], $f4=[*($1, $3)]) > +- LogicalJoin(condition=[=($0, $2)], joinType=[inner]) > :- LogicalAggregate(group=[\{1}], EXPR$0=[COUNT(DISTINCT $0)]) > : +- LogicalTableScan(table=[[t1]]) > +- LogicalAggregate(group=[\{0}], agg#0=[COUNT()]) > +- LogicalTableScan(table=[[t2]]) > {code} > Based on the converted plan, result is 4; while the correct answer is 2. -- This message was sent by Atlassian JIRA (v7.6.3#76005)