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

Add `Program` interface, a planner phase more general than current `RuleSet`

    Details

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

      Description

      Currently `Framework.getPlanner` allows you to pass in an array of `RuleSet` objects. You can then invoke these one by one to get multi-phase optimization.

      A new `Program` interface generalizes `RuleSet`. It could, for instance, choose a different set of rules based on the input. It could invoke a particular planner engine (hep or volcano), and enable a particular set of traits. It could also invoke `RelNode` transformations that are ad hoc, not implemented in `RelOptRule`s.

      One of the current `Framework.getPlanner` methods is now deprecated and will be removed before optiq-0.9; new code should use a version that passes a list of `Program`.

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/301
      Created by: julianhyde
      Labels:
      Created at: Wed Jun 18 02:02:38 CEST 2014
      State: open

        Attachments

          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: