You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chengxiang Li (JIRA)" <ji...@apache.org> on 2016/02/25 04:35:18 UTC

[jira] [Updated] (FLINK-3502) AggregateProjectPullUpConstantsRule fails on certain group keys order.

     [ https://issues.apache.org/jira/browse/FLINK-3502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chengxiang Li updated FLINK-3502:
---------------------------------
    Summary: AggregateProjectPullUpConstantsRule fails on certain group keys order.  (was: [SQL] AggregateProjectPullUpConstantsRule fails on certain group keys order.)

> AggregateProjectPullUpConstantsRule fails on certain group keys order.
> ----------------------------------------------------------------------
>
>                 Key: FLINK-3502
>                 URL: https://issues.apache.org/jira/browse/FLINK-3502
>             Project: Flink
>          Issue Type: Bug
>          Components: Table API
>            Reporter: Chengxiang Li
>
> {noformat}
> val t = CollectionDataSets.get3TupleDataSet(env).as('a, 'b, 'c)
>       .select('b, 4 as 'four, 'a)
>       .groupBy('b, 'four)
>       .select('four, 'a.sum)
> {noformat}
> This query would throw exception like:
> {noformat}
> java.lang.AssertionError: Internal error: Error while applying rule AggregateProjectPullUpConstantsRule, args [rel#7:LogicalAggregate.NONE.[](input=rel#6:Subset#1.NONE.[],group={1, 2},TMP_1=SUM($0)), rel#5:LogicalProject.NONE.[](input=rel#4:Subset#0.NONE.[],a=$0,four=4,b=$1)]
> 	at org.apache.calcite.util.Util.newInternal(Util.java:792)
> 	at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:251)
> 	at org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:826)
> 	at org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:304)
> 	at org.apache.flink.api.java.table.JavaBatchTranslator.translate(JavaBatchTranslator.scala:78)
> 	at org.apache.flink.api.scala.table.ScalaBatchTranslator.translate(ScalaBatchTranslator.scala:51)
> 	at org.apache.flink.api.scala.table.TableConversions.toDataSet(TableConversions.scala:35)
> 	at org.apache.flink.api.scala.table.test.GroupedAggregationsITCase.testGroupedByExpression(GroupedAggregationsITCase.scala:133)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
> 	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.junit.runners.Suite.runChild(Suite.java:127)
> 	at org.junit.runners.Suite.runChild(Suite.java:26)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> Caused by: java.lang.AssertionError: Internal error: Error occurred while applying rule AggregateProjectPullUpConstantsRule
> 	at org.apache.calcite.util.Util.newInternal(Util.java:792)
> 	at org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:150)
> 	at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:213)
> 	at org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule.onMatch(AggregateProjectPullUpConstantsRule.java:208)
> 	at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228)
> 	... 44 more
> Caused by: java.lang.AssertionError: Type mismatch:
> rel rowtype:
> RecordType(INTEGER four, INTEGER NOT NULL b, INTEGER TMP_1) NOT NULL
> equivRel rowtype:
> RecordType(INTEGER NOT NULL four, BIGINT b, INTEGER TMP_1) NOT NULL
> 	at org.apache.calcite.plan.RelOptUtil.equal(RelOptUtil.java:1693)
> 	at org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:1027)
> 	at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1055)
> 	at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1958)
> 	at org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:138)
> 	... 47 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)