Ken Wang created CALCITE-2700:
---------------------------------
Summary: 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: Julian Hyde
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)