[ https://issues.apache.org/jira/browse/CALCITE-2589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Danny Chen updated CALCITE-2589: -------------------------------- Fix Version/s: (was: 1.22.0) > VolcanoPlanner#fireRules and VolcanoRuleCall#matchRecurse should ignore > known-to-be-unimportant relations > --------------------------------------------------------------------------------------------------------- > > Key: CALCITE-2589 > URL: https://issues.apache.org/jira/browse/CALCITE-2589 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.17.0 > Reporter: Vladimir Sitnikov > Priority: Major > Labels: pull-request-available > > {{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. -- This message was sent by Atlassian Jira (v8.3.4#803005)