You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Chunwei Lei (Jira)" <ji...@apache.org> on 2022/06/22 03:39:00 UTC
[jira] [Created] (CALCITE-5195) ArrayIndexOutOfBoundsException when inferring more equal conditions from join condition for semi join
Chunwei Lei created CALCITE-5195:
------------------------------------
Summary: ArrayIndexOutOfBoundsException when inferring more equal conditions from join condition for semi join
Key: CALCITE-5195
URL: https://issues.apache.org/jira/browse/CALCITE-5195
Project: Calcite
Issue Type: Bug
Reporter: Chunwei Lei
Assignee: Chunwei Lei
The following test can reproduce the exception.
{code:java}
@Test void testJoinConditionPushdown4() {
final Function<RelBuilder, RelNode> relFn = b -> {
RelNode left = b.scan("EMP")
.project(
b.field("DEPTNO"),
b.field("ENAME"))
.build();
RelNode right = b.scan("DEPT")
.project(
b.field("DEPTNO"),
b.field("DNAME"))
.build();
b.push(left).push(right);
RexInputRef ref1 = b.field(2, 0, "DEPTNO");
RexInputRef ref2 = b.field(2, 1, "DEPTNO");
RexInputRef ref3 = b.field(2, 1, "DNAME");
RexCall cond1 = (RexCall) b.equals(ref1, ref2);
RexCall cond2 = (RexCall) b.equals(ref1, ref3);
RexNode cond = b.and(cond1, cond2);
return b.semiJoin(cond)
.project(b.field(0))
.build();
};
relFn(relFn)
.withRule(
CoreRules.JOIN_PUSH_EXPRESSIONS,
CoreRules.JOIN_CONDITION_PUSH,
CoreRules.SEMI_JOIN_PROJECT_TRANSPOSE,
CoreRules.JOIN_REDUCE_EXPRESSIONS,
CoreRules.FILTER_REDUCE_EXPRESSIONS)
.check();
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)