[ 
https://issues.apache.org/jira/browse/CALCITE-3118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16858693#comment-16858693
 ] 

Botong Huang edited comment on CALCITE-3118 at 6/7/19 2:20 PM:
---------------------------------------------------------------

{quote}It is not wrong provided the children are identical
{quote}
I think you missed my point. The structure the _AssertOperandsDifferentRule_ is 
looking for is: 
      A
    /    \
  B     C
 where *B is A's first child*. What the match returned was: 
        Rel1
      /        \
 Rel2.1    Rel2.2
 where Rel2.1 is *NOT* Rel1's first child. 


was (Author: botong):
{quote}It is not wrong provided the children are identical
{quote}
I think you missed my point. The structure the _AssertOperandsDifferentRule_ is 
looking for is: 
      A
    /    \
  B     C
 where *B is A's first child*. What the match returned was: 
        Rel1
      /        \
 Rel2.1    Rel2.2
 where Rel2.1 is *NOT* A's first 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: 1h
>  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)

Reply via email to