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

Review (and improve?) hints

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Hints were initially implemented via CALCITE-482, and later enlarged via CALCITE-5107 (which included more RelNodes as "hintable").
      However, the latter caused some issues, because certain transformations (RelDecorrelator, RelFieldTrimmer, RelStructuredTypeFlattener) were missing the hint propagation for the "new" hintables, see details in CALCITE-5177.

      The purpose of the current ticket is:

      • Review the hint copy/propagation mechanism, see if it can be more robust to avoid issues like CALCITE-5177 in the future.
      • Review some hint-related features, and verify they are still relevant / correct after CALCITE-5107's implementation, e.g.:
        • RelOptUtils#propagateRelHints does not propagate hints if visiting depth is over than 3 (hardcoded, arbitrary value?) ; see its javadoc, and SubTreeHintPropagateShuttle#visit. Is this still correct / pertinent after CALCITE-5107?
        • ResetHintsShuttle javadoc mentions "rules" for the "old" hintables (Project, Aggregate, Join, TableScan); but not for the "new" hintables added in CALCITE-5107.
        • Other?

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rubenql Ruben Q L
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: