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

Trim unused fields for plan of materialized-view before matching.

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.21.0
    • None

    Description

      In current code, before matching query with materialized-view, unused fields of query is trimmed but materialized-view is not. Thus below simple SQL fails to be matched though query and materialized-
      view are exactly the same:

      @Test public void testMaterializationAfterTrimingOfUnusedFields() {
      String sql =
      "select \"y\".\"deptno\", \"y\".\"name\", \"x\".\"sum_salary\"\n" +
      "from\n" +
      " (select \"deptno\", sum(\"salary\") \"sum_salary\" from \"emps\" group by \"deptno\") \"x\"\n" +
      " join\n" +
      " \"depts\" \"y\"\n" +
      " on \"x\".\"deptno\"=\"y\".\"deptno\"\n";
      checkMaterialize(sql, sql);
      }

       Checking CalciteMaterializer https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/prepare/CalciteMaterializer.java#L83 , I think the code intends to do the trimming, but didn't call the method.
      Since unused fields of query is trimmed anyway https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java#L995 , thus I think there's no necessity to keep the materialized-view un-trimmed

      Attachments

        Issue Links

        Activity

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

          People

            Unassigned Unassigned
            jinxing6042@126.com Jin Xing
            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 - 3.5h
                3.5h

                Slack

                  Issue deployment