Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-4129

Support equality check for whole rel plan tree

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.25.0
    • core

    Description

      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.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            hyuan Haisheng Yuan
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 2h
                2h

                Slack

                  Issue deployment