ZiLin Chen created CALCITE-4681:
-----------------------------------

             Summary: Rule operand match specific shape with or without 
RelSubset.class/RelNode.class
                 Key: CALCITE-4681
                 URL: https://issues.apache.org/jira/browse/CALCITE-4681
             Project: Calcite
          Issue Type: Improvement
          Components: core
            Reporter: ZiLin Chen


If we want to match such a pattern, LogicalJoin1 with left Input XXX(original 
LogicalJoin1 left input) and with right input (LogicalJoin.class).  we wound 
find that XXX we should use RelNode.class or RelSubset.class. However both 
RelNode.class and RelSubset.class will match all kind of traitSet which is 
inefficient(rule may fires multi time just because of some kind of XXX with 
different trait), especially when this is a JoinReorder Rule.

The XXX operand we want to match is exact what LogicalJoin1.getLeft() return. 

LogicalJoin1

 - XXX(original LogicalJoin1 left input)

 - LogicalJoin2

 

Is that any way we can provide to solve this problem?

One way maybe changing what RelSubset.class operand match meaning? (Now, there 
is no rule in calcite with RelSubset.class as match operand. Before 
JoinAssociateRule is the only one match RelSubset.class, but change later )

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to