[ https://issues.apache.org/jira/browse/CALCITE-2700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesus Camacho Rodriguez reassigned CALCITE-2700: ------------------------------------------------ Assignee: Jesus Camacho Rodriguez (was: Julian Hyde) > MaterializedView rewrite rules are matched on physical operators. > ----------------------------------------------------------------- > > Key: CALCITE-2700 > URL: https://issues.apache.org/jira/browse/CALCITE-2700 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.17.0 > Reporter: Ken Wang > Assignee: Jesus Camacho Rodriguez > Priority: Minor > > Today, all the MV related rewrite rules can be applied to both logical and > physical operators. > This will lead to many redundant matches and make the match process not > efficient. > One optimization we can do is just limit the rules application to logical > operators only. > > 2018-11-23 12:08:14,468 [main] INFO volcano.VolcanoRuleCall:193 - call#659: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#101:LogicalProject.NONE.[](input=rel#99:Subset#7.NONE.[],X=+($0, > 1),name=$2), > rel#97:LogicalFilter.NONE.[](input=rel#44:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,468 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#111 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,468 [main] INFO volcano.VolcanoRuleCall:218 - call#659 > generated 1 successors: [LogicalProject#111] > 2018-11-23 12:08:14,484 [main] INFO volcano.VolcanoRuleCall:193 - call#738: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#103:EnumerableProject.ENUMERABLE.[](input=rel#102:Subset#7.ENUMERABLE.[],X=+($0, > 1),name=$2), > rel#116:EnumerableFilter.ENUMERABLE.[](input=rel#44:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,484 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#118 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,484 [main] INFO volcano.VolcanoRuleCall:218 - call#738 > generated 1 successors: [LogicalProject#118] > 2018-11-23 12:08:14,499 [main] INFO volcano.VolcanoRuleCall:193 - call#626: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#100:LogicalProject.NONE.[](input=rel#99:Subset#7.NONE.[],empid=$0,deptno=$1,name=$2), > > rel#97:LogicalFilter.NONE.[](input=rel#44:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,499 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#127 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,499 [main] INFO volcano.VolcanoRuleCall:218 - call#626 > generated 1 successors: [LogicalProject#127] > 2018-11-23 12:08:14,515 [main] INFO volcano.VolcanoRuleCall:193 - call#216: > Apply rule [MaterializedViewJoinRule(Filter)] to > [rel#47:LogicalFilter.NONE.[](input=rel#46:Subset#1.NONE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,515 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#134 via MaterializedViewJoinRule(Filter) > 2018-11-23 12:08:14,515 [main] INFO volcano.VolcanoRuleCall:218 - call#216 > generated 1 successors: [LogicalProject#134] > 2018-11-23 12:08:14,533 [main] INFO volcano.VolcanoRuleCall:193 - call#908: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#138:LogicalProject.NONE.[](input=rel#102:Subset#7.ENUMERABLE.[],X=+($0, > 1),name=$2), > rel#116:EnumerableFilter.ENUMERABLE.[](input=rel#44:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,534 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#141 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,534 [main] INFO volcano.VolcanoRuleCall:218 - call#908 > generated 1 successors: [LogicalProject#141] > 2018-11-23 12:08:14,535 [main] INFO volcano.VolcanoRuleCall:193 - call#878: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#137:EnumerableProject.ENUMERABLE.[](input=rel#102:Subset#7.ENUMERABLE.[],empid=$0,deptno=$1,name=$2), > > rel#116:EnumerableFilter.ENUMERABLE.[](input=rel#44:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,537 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#145 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,537 [main] INFO volcano.VolcanoRuleCall:218 - call#878 > generated 1 successors: [LogicalProject#145] > 2018-11-23 12:08:14,541 [main] INFO volcano.VolcanoRuleCall:193 - call#960: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#81:EnumerableProject.ENUMERABLE.[](input=rel#80:Subset#2.ENUMERABLE.[],X=+($0, > 1),name=$2), > rel#150:EnumerableFilter.ENUMERABLE.[](input=rel#149:Subset#1.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,542 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#152 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:14,543 [main] INFO volcano.VolcanoRuleCall:218 - call#960 > generated 1 successors: [LogicalProject#152] > 2018-11-23 12:08:14,544 [main] INFO volcano.VolcanoRuleCall:193 - call#966: > Apply rule [MaterializedViewJoinRule(Filter)] to > [rel#150:EnumerableFilter.ENUMERABLE.[](input=rel#149:Subset#1.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:14,546 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#156 via MaterializedViewJoinRule(Filter) > 2018-11-23 12:08:14,546 [main] INFO volcano.VolcanoRuleCall:218 - call#966 > generated 1 successors: [LogicalProject#156] > 2018-11-23 12:08:15,135 [main] INFO volcano.VolcanoRuleCall:193 - call#1881: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#330:LogicalProject.NONE.[](input=rel#329:Subset#2.NONE.[],X=+($0, > 1),name=$2), > rel#328:LogicalFilter.NONE.[](input=rel#327:Subset#1.NONE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,136 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#364 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,138 [main] INFO volcano.VolcanoRuleCall:218 - call#1881 > generated 1 successors: [LogicalProject#364] > 2018-11-23 12:08:15,173 [main] INFO volcano.VolcanoRuleCall:193 - call#2282: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#382:LogicalProject.NONE.[](input=rel#380:Subset#7.NONE.[],X=+($0, > 1),name=$2), > rel#378:LogicalFilter.NONE.[](input=rel#325:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,174 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#392 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,174 [main] INFO volcano.VolcanoRuleCall:218 - call#2282 > generated 1 successors: [LogicalProject#392] > 2018-11-23 12:08:15,206 [main] INFO volcano.VolcanoRuleCall:193 - call#2249: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#381:LogicalProject.NONE.[](input=rel#380:Subset#7.NONE.[],empid=$0,deptno=$1,name=$2), > > rel#378:LogicalFilter.NONE.[](input=rel#325:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,207 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#408 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,208 [main] INFO volcano.VolcanoRuleCall:218 - call#2249 > generated 1 successors: [LogicalProject#408] > 2018-11-23 12:08:15,248 [main] INFO volcano.VolcanoRuleCall:193 - call#2531: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#419:LogicalProject.NONE.[](input=rel#383:Subset#7.ENUMERABLE.[],X=+($0, > 1),name=$2), > rel#397:EnumerableFilter.ENUMERABLE.[](input=rel#325:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,250 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#422 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,250 [main] INFO volcano.VolcanoRuleCall:218 - call#2531 > generated 1 successors: [LogicalProject#422] > 2018-11-23 12:08:15,251 [main] INFO volcano.VolcanoRuleCall:193 - call#2501: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#418:EnumerableProject.ENUMERABLE.[](input=rel#383:Subset#7.ENUMERABLE.[],empid=$0,deptno=$1,name=$2), > > rel#397:EnumerableFilter.ENUMERABLE.[](input=rel#325:Subset#0.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,252 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#426 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,253 [main] INFO volcano.VolcanoRuleCall:218 - call#2501 > generated 1 successors: [LogicalProject#426] > 2018-11-23 12:08:15,267 [main] INFO volcano.VolcanoRuleCall:193 - call#2583: > Apply rule [MaterializedViewJoinRule(Project-Filter)] to > [rel#362:EnumerableProject.ENUMERABLE.[](input=rel#361:Subset#2.ENUMERABLE.[],X=+($0, > 1),name=$2), > rel#431:EnumerableFilter.ENUMERABLE.[](input=rel#430:Subset#1.ENUMERABLE.[],condition==(CAST($1):INTEGER > NOT NULL, 10))] > 2018-11-23 12:08:15,269 [main] INFO volcano.VolcanoRuleCall:91 - Transform > to: rel#433 via MaterializedViewJoinRule(Project-Filter) > 2018-11-23 12:08:15,269 [main] INFO volcano.VolcanoRuleCall:218 - call#2583 > generated 1 successors: [LogicalProject#433] -- This message was sent by Atlassian JIRA (v7.6.3#76005)