You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jesus Camacho Rodriguez (JIRA)" <ji...@apache.org> on 2018/01/02 03:05:00 UTC
[jira] [Commented] (CALCITE-2110) ArrayIndexOutOfBoundsException in
RexSimplify when using ReduceExpressionsRule.JOIN_INSTANCE
[ https://issues.apache.org/jira/browse/CALCITE-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16307627#comment-16307627 ]
Jesus Camacho Rodriguez commented on CALCITE-2110:
--------------------------------------------------
Thanks [~julianhyde], patch LGTM, +1
> ArrayIndexOutOfBoundsException in RexSimplify when using ReduceExpressionsRule.JOIN_INSTANCE
> --------------------------------------------------------------------------------------------
>
> Key: CALCITE-2110
> URL: https://issues.apache.org/jira/browse/CALCITE-2110
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.15.0
> Reporter: godfrey he
> Assignee: Julian Hyde
> Fix For: 1.16.0
>
>
> test:
> {code}
> @Test public void testCorrelationScalarAggAndFilter() {
> final String sql = "SELECT e1.empno\n"
> + "FROM emp e1, dept d1 where e1.deptno = d1.deptno\n"
> + "and e1.deptno < 10 and d1.deptno < 15\n"
> + "and e1.sal > (select avg(sal) from emp e2 where e1.empno = e2.empno)";
> HepProgram program = new HepProgramBuilder()
> .addRuleInstance(ReduceExpressionsRule.PROJECT_INSTANCE)
> .addRuleInstance(ReduceExpressionsRule.FILTER_INSTANCE)
> .addRuleInstance(ReduceExpressionsRule.JOIN_INSTANCE)
> .build();
> sql(sql)
> .withDecorrelation(true)
> .withTrim(true)
> .expand(true)
> .withPre(program)
> .with(program)
> .check();
> }
> {code}
> excption:
> {code}
> java.lang.ArrayIndexOutOfBoundsException: -1
> at java.util.ArrayList.elementData(ArrayList.java:422)
> at java.util.ArrayList.set(ArrayList.java:450)
> at org.apache.calcite.rex.RexSimplify.processRange(RexSimplify.java:1018)
> at org.apache.calcite.rex.RexSimplify.simplifyAnd2ForUnknownAsFalse(RexSimplify.java:613)
> at org.apache.calcite.rex.RexSimplify.simplifyAnd2ForUnknownAsFalse(RexSimplify.java:579)
> at org.apache.calcite.rex.RexSimplify.simplifyAnd(RexSimplify.java:538)
> at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:136)
> at org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall(RexUtil.java:2625)
> at org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall(RexUtil.java:2585)
> at org.apache.calcite.rex.RexCall.accept(RexCall.java:107)
> at org.apache.calcite.rex.RexShuttle.apply(RexShuttle.java:284)
> at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:547)
> at org.apache.calcite.rel.rules.ReduceExpressionsRule$JoinReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:331)
> at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:317)
> at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:508)
> at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:387)
> at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:252)
> at org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:127)
> at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:211)
> at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:198)
> at org.apache.calcite.test.RelOptTestBase.checkPlanning(RelOptTestBase.java:155)
> at org.apache.calcite.test.RelOptTestBase$Sql.check(RelOptTestBase.java:300)
> at org.apache.calcite.test.RelOptTestBase$Sql.check(RelOptTestBase.java:284)
> at org.apache.calcite.test.RelOptRulesTest.testCorrelationScalarAggAndFilter(RelOptRulesTest.java:1634)
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)