Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.17.0
-
None
Description
call.getPlanner().setImportance is used to avoid use of known-to-be-inefficient relation, however the check of importance is performed very late.
The check is performed in org.apache.calcite.plan.volcano.RuleQueue#skipMatch when ruleCalls have already been created.
I suggest to move the check into VolcanoPlanner#fireRules and VolcanoRuleCall#matchRecurse
It would reduce amount of "possible" rule executions.
Note: calling setImportance BEFORE transformTo would would help as well to filter out unimportant rule calls early.
Attachments
Issue Links
- Blocked
-
CALCITE-3041 Query runs endless when setImportance to 0
- Closed
- blocks
-
CALCITE-2575 Release Calcite 1.18.0
- Closed
- links to