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-5177in 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?
- 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
Attachments
Issue Links
- relates to
-
CALCITE-5177 Query loses hint after decorrelation
- Closed
-
CALCITE-5107 Support SQL hint for Filter, SetOp, Sort, Window, Values
- Closed
-
CALCITE-482 Implement SQL and planner hints
- Closed