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

Generate the same correlationId for the same query

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • core

    Description

      Currently, the CTE query block will be sql2rel multiple times if be referenced multiple times. If it contains a lateral join, it will generate different correlation id. See below:

          String sql = "WITH a AS (SELECT ename, job, empno, r FROM emp, LATERAL TABLE (ramp(empno)) as T(r))"
              + " SELECT * from a a1, a a2 WHERE a1.r = a2.empno";
          sql(sql).ok();
      
      LogicalProject(ENAME=[$0], JOB=[$1], EMPNO=[$2], R=[$3], ENAME0=[$4], JOB0=[$5], EMPNO0=[$6], R0=[$7])
        LogicalJoin(condition=[=($3, $6)], joinType=[inner])
          LogicalProject(ENAME=[$1], JOB=[$2], EMPNO=[$0], R=[$9])
            LogicalCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{0}])
              LogicalTableScan(table=[[CATALOG, SALES, EMP]])
              LogicalTableFunctionScan(invocation=[RAMP($cor0.EMPNO)], rowType=[RecordType(INTEGER I)])
          LogicalProject(ENAME=[$1], JOB=[$2], EMPNO=[$0], R=[$9])
            LogicalCorrelate(correlation=[$cor1], joinType=[inner], requiredColumns=[{0}])
              LogicalTableScan(table=[[CATALOG, SALES, EMP]])
              LogicalTableFunctionScan(invocation=[RAMP($cor1.EMPNO)], rowType=[RecordType(INTEGER I)])
      
      

      It will generate two correlation id. In flink there is a subplan reuse based on the digest, the same query produce diff digest will break this functionality

      Attachments

        Issue Links

        Activity

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

          People

            Unassigned Unassigned
            aitozi WenJun Min

            Dates

              Created:
              Updated:

              Slack

                Issue deployment