[ https://issues.apache.org/jira/browse/CALCITE-4129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Haisheng Yuan resolved CALCITE-4129. ------------------------------------ Fix Version/s: 1.25.0 Resolution: Fixed Fixed in https://github.com/apache/calcite/commit/b7e245495f5824d5f15143b1b519142876542bf3. > Support equality check for whole rel plan tree > ---------------------------------------------- > > Key: CALCITE-4129 > URL: https://issues.apache.org/jira/browse/CALCITE-4129 > Project: Calcite > Issue Type: Improvement > Components: core > Reporter: Haisheng Yuan > Priority: Major > Labels: pull-request-available > Fix For: 1.25.0 > > Time Spent: 2h > Remaining Estimate: 0h > > Currently the only way to check rel node tree deep equality is transforming > into String by {{RelOptUtil.toString(rel)}} with > {{SqlExplainLevel.EXPPLAN_ATTRIBUTES}}, which is inefficient. One example is > RexSubQuery. It has to do it this way, because the rel being reference by > RexSubQuery is possibly not yet registered to VolcanoPlanner, and the digest > {{equals}} checks the input RelNode by identity (not content). That is OK for > RelSubset and HepRelVertex, if the RelNode is already registered in planner, > but not for plain RelNode that is outside of planner. Due to this, we have to > implement another set of deep equals logic in our system. -- This message was sent by Atlassian Jira (v8.3.4#803005)