[jira] [Issue Comment Deleted] (CALCITE-2448) AggregateProjectPullUpConstantsRule throws AssertionError
[ https://issues.apache.org/jira/browse/CALCITE-2448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] pengzhiwei updated CALCITE-2448: Comment: was deleted (was: Hi @[~atris] I have made a pr for this issue,can have a check for me,thanks! [https://github.com/apache/calcite/pull/789]) > AggregateProjectPullUpConstantsRule throws AssertionError > - > > Key: CALCITE-2448 > URL: https://issues.apache.org/jira/browse/CALCITE-2448 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.17.0 >Reporter: pengzhiwei >Assignee: pengzhiwei >Priority: Major > Attachments: 屏幕快照 2018-08-06 下午9.09.15.png, 屏幕快照 2018-08-06 > 下午9.13.56.png, 屏幕快照 2018-08-06 下午9.19.48.png, 屏幕快照 2018-08-06 下午9.19.48.png > > > In the sql as followed: > {code:java} > select 'a',-emp.deptno from emp where 'a' is null group by 'a',-emp.deptno > {code} > The AggregateProjectPullUpConstantsRule throws an Error like this: > {code:java} > java.lang.AssertionError: Cannot add expression of different type to set: > set type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, INTEGER NOT NULL EXPR$1) NOT NULL > expression type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, CHAR(1) CHARACTER SET > "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" NOT NULL EXPR$1) NOT NULL > set is rel#9:LogicalAggregate(input=HepRelVertex#8,group={0, 1}) > expression is LogicalProject#11 > at > org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:380) > at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57) > at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234) > at > org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule.onMatch(AggregateProjectPullUpConstantsRule.java:194) > at > org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:315) > {code} > The reason is that the relBuilder#aggregate failed to generate new aggregate > node when the filer condition is always false,just return as followed in > RelBuilder: > !屏幕快照 2018-08-06 下午9.09.15.png! > And then the project created later after relBuilder#aggregate is not really > based on the aggregate node in AggregateProjectPullUpConstantsRule which > result in the error. > !屏幕快照 2018-08-06 下午9.13.56.png! > I fix the problem by add a logic if the relBuilder#aggregate has not > generated a aggregate node then just return this rule in > AggregateProjectPullUpConstantsRule ,just like this: > !屏幕快照 2018-08-06 下午9.19.48.png! > Can you have check for me,thanks! > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Issue Comment Deleted] (CALCITE-2448) AggregateProjectPullUpConstantsRule throws AssertionError
[ https://issues.apache.org/jira/browse/CALCITE-2448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] pengzhiwei updated CALCITE-2448: Comment: was deleted (was: Hi @[~Sergey Nuyanzin],In the command line mode,the AggregateProjectPullUpConstantsRule may have not fired.I have added a test in RelOptRulesTest,the problem really exists! ) > AggregateProjectPullUpConstantsRule throws AssertionError > - > > Key: CALCITE-2448 > URL: https://issues.apache.org/jira/browse/CALCITE-2448 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.17.0 >Reporter: pengzhiwei >Assignee: pengzhiwei >Priority: Major > Attachments: 屏幕快照 2018-08-06 下午9.09.15.png, 屏幕快照 2018-08-06 > 下午9.13.56.png, 屏幕快照 2018-08-06 下午9.19.48.png, 屏幕快照 2018-08-06 下午9.19.48.png > > > In the sql as followed: > {code:java} > select 'a',-emp.deptno from emp where 'a' is null group by 'a',-emp.deptno > {code} > The AggregateProjectPullUpConstantsRule throws an Error like this: > {code:java} > java.lang.AssertionError: Cannot add expression of different type to set: > set type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, INTEGER NOT NULL EXPR$1) NOT NULL > expression type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, CHAR(1) CHARACTER SET > "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" NOT NULL EXPR$1) NOT NULL > set is rel#9:LogicalAggregate(input=HepRelVertex#8,group={0, 1}) > expression is LogicalProject#11 > at > org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:380) > at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57) > at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234) > at > org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule.onMatch(AggregateProjectPullUpConstantsRule.java:194) > at > org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:315) > {code} > The reason is that the relBuilder#aggregate failed to generate new aggregate > node when the filer condition is always false,just return as followed in > RelBuilder: > !屏幕快照 2018-08-06 下午9.09.15.png! > And then the project created later after relBuilder#aggregate is not really > based on the aggregate node in AggregateProjectPullUpConstantsRule which > result in the error. > !屏幕快照 2018-08-06 下午9.13.56.png! > I fix the problem by add a logic if the relBuilder#aggregate has not > generated a aggregate node then just return this rule in > AggregateProjectPullUpConstantsRule ,just like this: > !屏幕快照 2018-08-06 下午9.19.48.png! > Can you have check for me,thanks! > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Issue Comment Deleted] (CALCITE-2448) AggregateProjectPullUpConstantsRule throws AssertionError
[ https://issues.apache.org/jira/browse/CALCITE-2448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] pengzhiwei updated CALCITE-2448: Comment: was deleted (was: Hi @[~atris] I am sorry that I have another pr has not been merged([https://github.com/apache/calcite/pull/778),so] I cannot make the pr at the moment. I will make a pr after the last one has been accepted.) > AggregateProjectPullUpConstantsRule throws AssertionError > - > > Key: CALCITE-2448 > URL: https://issues.apache.org/jira/browse/CALCITE-2448 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.17.0 >Reporter: pengzhiwei >Assignee: Julian Hyde >Priority: Major > Attachments: 屏幕快照 2018-08-06 下午9.09.15.png, 屏幕快照 2018-08-06 > 下午9.13.56.png, 屏幕快照 2018-08-06 下午9.19.48.png, 屏幕快照 2018-08-06 下午9.19.48.png > > > In the sql as followed: > {code:java} > select 'a',-emp.deptno from emp where 'a' is null group by 'a',-emp.deptno > {code} > The AggregateProjectPullUpConstantsRule throws an Error like this: > {code:java} > java.lang.AssertionError: Cannot add expression of different type to set: > set type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, INTEGER NOT NULL EXPR$1) NOT NULL > expression type is RecordType(CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE > "ISO-8859-1$en_US$primary" NOT NULL EXPR$0, CHAR(1) CHARACTER SET > "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" NOT NULL EXPR$1) NOT NULL > set is rel#9:LogicalAggregate(input=HepRelVertex#8,group={0, 1}) > expression is LogicalProject#11 > at > org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:380) > at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57) > at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234) > at > org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule.onMatch(AggregateProjectPullUpConstantsRule.java:194) > at > org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:315) > {code} > The reason is that the relBuilder#aggregate failed to generate new aggregate > node when the filer condition is always false,just return as followed in > RelBuilder: > !屏幕快照 2018-08-06 下午9.09.15.png! > And then the project created later after relBuilder#aggregate is not really > based on the aggregate node in AggregateProjectPullUpConstantsRule which > result in the error. > !屏幕快照 2018-08-06 下午9.13.56.png! > I fix the problem by add a logic if the relBuilder#aggregate has not > generated a aggregate node then just return this rule in > AggregateProjectPullUpConstantsRule ,just like this: > !屏幕快照 2018-08-06 下午9.19.48.png! > Can you have check for me,thanks! > -- This message was sent by Atlassian JIRA (v7.6.3#76005)