[
https://issues.apache.org/jira/browse/CALCITE-3118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16858178#comment-16858178
]
Botong Huang edited comment on CALCITE-3118 at 6/7/19 1:27 PM:
---------------------------------------------------------------
Agree in general. But in this test case, the rule in this unit test
(AssertOperandsDifferentRule) is to match a parent and its first and second
child, it is wrong to return a match with a parent relNode and both its second
child.
was (Author: botong):
Agree in general. But in this test case, the rule in this unit test
(AssertOperandsDifferentRule) is to match a parent and its first and second
child, it is wrong to return a match with a relNode and both its second child.
> VolcanoRuleCall match parent child ordinal not properly checked
> ---------------------------------------------------------------
>
> Key: CALCITE-3118
> URL: https://issues.apache.org/jira/browse/CALCITE-3118
> Project: Calcite
> Issue Type: Bug
> Reporter: Botong Huang
> Priority: Major
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> In VolcanoRuleCall.matchRecurse(), when ascending (child operand is matched,
> looking for parent operand match), we want to check that the matched parent
> indeed has the previously matched child RelNode as a child with the expected
> ordinal. However, there is a bug in this check. As a result, some incorrect
> parent is not skipped as expected and matched incorrectly. See unit test
> included in PR for a case that triggers this bug, where the same RelNode get
> matched for two operands at the same time.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)