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

Propagate RelCollation on aliased columns in JoinRule

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.1.0-incubating
    • Component/s: None
    • Labels:

      Description

      Consider this query:

      SELECT *
      FROM emp JOIN dept ON emp.deptno = dept.deptno
      ORDER BY dept.deptno;

      If table emp is sorted on emp.deptno (for example, table emp has index on emp.deptno, or table emp comes from a subquery which sorts on emp.deptno), the join predicate emp.deptno = dept.deptno indicates the two columns are aliased columns in terms of ordering. If JoinRule keep track of the RelCollation trait for the aliased columns, the query essentially become as following

      SELECT *
      FROM emp JOIN dept ON emp.deptno = dept.deptno
      ORDER BY emp.deptno;

      The ORDER BY should not require a SortRel, since the input table emp is sorted on emp.depno.

      Currently, optiq framework does not recognize the aliased columns from join = predicates, and may introduce redundant sort to the plan.

      This issue is relevant to issue (#41 | CALCITE-41)
      https://github.com/julianhyde/optiq/issues/41

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/254
      Created by: jinfengni
      Labels:
      Created at: Thu Apr 17 22:53:46 CEST 2014
      State: open

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                github-import GitHub Import
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: