asdfgh19 created CALCITE-5665:
---------------------------------
Summary: Reducing ineffective matches for MaterializedViewRules
and double calculation for RelOptMaterialization's Metadata using cache
Key: CALCITE-5665
URL: https://issues.apache.org/jira/browse/CALCITE-5665
Project: Calcite
Issue Type: Improvement
Components: core
Reporter: asdfgh19
MaterializedViewRule such as MaterializedViewOnlyFilterRule and
MaterializedViewOnlyJoinRule are easy to match, which results in multiple
executions of the MaterializedViewRule#perform method, most of which are
ineffective. Each execution of this method requires traversing the query
relational expression tree and the materialized view relational expression tree
multiple times.
For example, the
MaterializedViewRelOptRulesTest#testJoinAggregateMaterializationNoAggregateFuncs9
method will execute this method 489 times.
There are many cases where we can pre-filter out invalid matches. For example,
all materialized views are Aggregate MV and the current rule is
MaterializedViewOnlyJoinRule.
We can also cache RelOptMaterialization Metadata to reduce repeated
calculations.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)