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

Add collation as a trait and a kind of RelNode metadata

    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

      Allow for traits to propagate up the tree.
      Ex: J2-F-J1
      If J1 uses SortMerge for Join then filter carries forward sordidness trait on join keys; If J2 is joining on same keys then it can take advantage of the sordidness trait of its child.

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/88
      Created by: jpullokkaran
      Labels:
      Created at: Thu Nov 28 00:21:59 CET 2013
      State: open

        Issue Links

          Activity

          Hide
          julianhyde Julian Hyde added a comment -

          Closing now that 1.1.0-incubating has been released.

          Show
          julianhyde Julian Hyde added a comment - Closing now that 1.1.0-incubating has been released.
          Show
          julianhyde Julian Hyde added a comment - Fixed in http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/2709896e .
          Hide
          github-import GitHub Import added a comment -

          [Date: Sun Mar 16 00:56:32 CET 2014, Author: julianhyde]

          To solve this issue, we should create a form of `RelOptRuleOperand` that fires once per `RelSubset`. If a node gets a new child with an existing set of traits, the rule won't fire again; but if it gets a new child with a new set of traits (i.e. a new `RelSubset` within its `RelSet`) then the rule should fire.

          We should write some tests that the operand behaves as expected, both in an abstract test and in a test for a particular query that uses traits, e.g. propagating collation.

          Show
          github-import GitHub Import added a comment - [Date: Sun Mar 16 00:56:32 CET 2014, Author: julianhyde ] To solve this issue, we should create a form of `RelOptRuleOperand` that fires once per `RelSubset`. If a node gets a new child with an existing set of traits, the rule won't fire again; but if it gets a new child with a new set of traits (i.e. a new `RelSubset` within its `RelSet`) then the rule should fire. We should write some tests that the operand behaves as expected, both in an abstract test and in a test for a particular query that uses traits, e.g. propagating collation.

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development