[jira] [Updated] (CALCITE-2593) Sometimes fails to plan when a RelNode transform multiple collations to single collation
[ https://issues.apache.org/jira/browse/CALCITE-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kevin Risden updated CALCITE-2593: -- Labels: pull-request-available (was: ) > Sometimes fails to plan when a RelNode transform multiple collations to > single collation > > > Key: CALCITE-2593 > URL: https://issues.apache.org/jira/browse/CALCITE-2593 > Project: Calcite > Issue Type: Bug > Components: core >Reporter: Hongze Zhang >Priority: Major > Labels: pull-request-available > > Sample SQL: > {code:java} > select sum(X + 1) filter (where Y) as "SET" from (values (1, TRUE), (2, > TRUE)) AS t(X, Y) limit 10{code} > Error log: > {code:java} > java.lang.RuntimeException: exception while executing [select sum(X + 1) > filter (where Y) as "SET" from (values (1, TRUE), (2, TRUE)) AS t(X, Y) limit > 10] at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1366) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1339) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1302) > at > org.apache.calcite.test.JdbcTest.testWithinGroupClause5(JdbcTest.java:6736) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at > org.junit.runners.ParentRunner.run(ParentRunner.java:363) at > org.junit.runner.JUnitCore.run(JUnitCore.java:137) at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) > at > com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) > at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) > Caused by: java.lang.RuntimeException: With materializationsEnabled=false, > limit=0 at > org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:573) at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1362) > ... 25 more Caused by: java.sql.SQLException: Error while executing SQL > "select sum(X + 1) filter (where Y) as "SET" from (values (1, TRUE), (2, > TRUE)) AS t(X, Y) limit 10": Node [rel#22:Subset#3.ENUMERABLE.[]] could not > be implemented; planner state: Root: rel#22:Subset#3.ENUMERABLE.[] Original > rel: LogicalSort(subset=[rel#22:Subset#3.ENUMERABLE.[]], fetch=[10]): > rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io}, id = 17 > LogicalAggregate(subset=[rel#16:Subset#2.NONE.[]], group=[{}], SET=[SUM($0) > FILTER $1]): rowcount = 1.0, cumulative cost = {1.1375000476837158 rows, 0.0 > cpu, 0.0 io}, id = 15 LogicalProject(subset=[rel#14:Subset#1.NONE.[1]], > $f0=[+($0, 1)], Y=[$1]): rowcount = 2.0, cumulative cost = {2.0 rows, 4.0 > cpu, 0.0 io}, id = 13 LogicalValues(subset=[rel#12:Subset#0.NONE.[]], > tuples=[[{ 1, true }, { 2, true }]]): rowcount = 2.0, cumulative cost = {2.0 > rows, 1.0 cpu, 0.0 io}, id = 1 Sets: Set#0, type: RecordType(INTEGER X, > BOOLEAN Y) rel#12:Subset#0.NONE.[], best=null, importance=0.6561 > rel#1:LogicalValues.NONE.[[0, 1], [1]](type=RecordType(INTEGER X, BOOLEAN > Y),tuples=[{ 1, true }, { 2, true }]), rowcount=2.0, cumulative cost={inf} > rel#37:Subset#0.ENUMERABLE.[], best=rel#36, importance=0.32805 > rel#36:EnumerableValues.ENUMERABLE.[[0, 1], [1]](type=RecordType(INTEGER X, > BOOLEAN Y),tuples=[{ 1, true }, { 2, true }]), rowcount=2.0, cumulative > cost={2.0 rows, 1.0 cpu, 0.0 io} Set#1, type: RecordType(INTEGER $f0, BOOLEAN > Y)
[jira] [Updated] (CALCITE-2593) Sometimes fails to plan when a RelNode transform multiple collations to single collation
[ https://issues.apache.org/jira/browse/CALCITE-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hongze Zhang updated CALCITE-2593: -- Summary: Sometimes fails to plan when a RelNode transform multiple collations to single collation (was: Sometimes failed to plan when a RelNode transform multiple collations to single collation) > Sometimes fails to plan when a RelNode transform multiple collations to > single collation > > > Key: CALCITE-2593 > URL: https://issues.apache.org/jira/browse/CALCITE-2593 > Project: Calcite > Issue Type: Improvement > Components: core >Reporter: Hongze Zhang >Assignee: Julian Hyde >Priority: Major > > Sample SQL: > {code:java} > select sum(X + 1) filter (where Y) as "SET" from (values (1, TRUE), (2, > TRUE)) AS t(X, Y) limit 10{code} > Error log: > {code:java} > java.lang.RuntimeException: exception while executing [select sum(X + 1) > filter (where Y) as "SET" from (values (1, TRUE), (2, TRUE)) AS t(X, Y) limit > 10] at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1366) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1339) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1302) > at > org.apache.calcite.test.JdbcTest.testWithinGroupClause5(JdbcTest.java:6736) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at > org.junit.runners.ParentRunner.run(ParentRunner.java:363) at > org.junit.runner.JUnitCore.run(JUnitCore.java:137) at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) > at > com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) > at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) > Caused by: java.lang.RuntimeException: With materializationsEnabled=false, > limit=0 at > org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:573) at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1362) > ... 25 more Caused by: java.sql.SQLException: Error while executing SQL > "select sum(X + 1) filter (where Y) as "SET" from (values (1, TRUE), (2, > TRUE)) AS t(X, Y) limit 10": Node [rel#22:Subset#3.ENUMERABLE.[]] could not > be implemented; planner state: Root: rel#22:Subset#3.ENUMERABLE.[] Original > rel: LogicalSort(subset=[rel#22:Subset#3.ENUMERABLE.[]], fetch=[10]): > rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io}, id = 17 > LogicalAggregate(subset=[rel#16:Subset#2.NONE.[]], group=[{}], SET=[SUM($0) > FILTER $1]): rowcount = 1.0, cumulative cost = {1.1375000476837158 rows, 0.0 > cpu, 0.0 io}, id = 15 LogicalProject(subset=[rel#14:Subset#1.NONE.[1]], > $f0=[+($0, 1)], Y=[$1]): rowcount = 2.0, cumulative cost = {2.0 rows, 4.0 > cpu, 0.0 io}, id = 13 LogicalValues(subset=[rel#12:Subset#0.NONE.[]], > tuples=[[{ 1, true }, { 2, true }]]): rowcount = 2.0, cumulative cost = {2.0 > rows, 1.0 cpu, 0.0 io}, id = 1 Sets: Set#0, type: RecordType(INTEGER X, > BOOLEAN Y) rel#12:Subset#0.NONE.[], best=null, importance=0.6561 > rel#1:LogicalValues.NONE.[[0, 1], [1]](type=RecordType(INTEGER X, BOOLEAN > Y),tuples=[{ 1, true }, { 2, true }]), rowcount=2.0, cumulative cost={inf} > rel#37:Subset#0.ENUMERABLE.[], best=rel#36, importance=0.32805 > rel#36:EnumerableValues.ENUMERABLE.[[0, 1], [1]](type=RecordType(INTEGER X, > BOOLEAN Y),tuples=[{ 1,