[ 
https://issues.apache.org/jira/browse/CALCITE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17415978#comment-17415978
 ] 

xzh_dz commented on CALCITE-3409:
---------------------------------

[~zabetak]

thanks for review.
 * These internally defined rules are applicable to all materialized view 
recognition scenarios. New interfaces are added to allow some rules to be 
registered for materialized view recognition of specific scenarios.
 * In fact, we not use `RelOptPlanner#addMaterializationRules`. We directly 
call the `RelOptMaterializations#useMaterializedViews` for materialized view 
recognition and materialized view registration.I think we can identify this API 
as experimental.

 *  

 Clients who implement the RelOptPlanner interface need to implement the method 
of registering materialized view rules, client should implement this method.If 
not, need not to care.

We focus on this interface `RelOptMaterializations #usematerializedviews`. We 
have never called the interface of RelOptPlanner.The API is added to facilitate 
testing in Calcite.So i suggest marking the APIs experimental,expect more 
feedback, thanks again.

 

 

 

> Add an interface in MaterializedViewSubstitutionVisitor to allow registering 
> UnifyRule
> --------------------------------------------------------------------------------------
>
>                 Key: CALCITE-3409
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3409
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Jin Xing
>            Assignee: Jin Xing
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 5h 40m
>  Remaining Estimate: 0h
>
> In current code of MaterializedViewSubstitutionVisitor, all matching rules 
> are internal defined. The existing rules support the most popular scenarios. 
> But my customers sometimes ask for the ability to self define some matching 
> rules, thus to support some special scenarios.
> I take below example as an illustration:
> {code:java}
> Query:
> select * from table
> where from_unixtime(_EVENT_TIME_, "yyyymmdd hh") >= "20190909 00"
> and from_unixtime(_EVENT_TIME_, "yyyymmdd hh") <= "20190909 23" ;
> Materialized View:
> select * from table 
> where from_unixtime(_EVENT_TIME_, "yyyymmdd") = "20190909";{code}
> It's hard to enumerate the matching pattern for different functions in 
> internal matching rules. We can expose a method to register new UnifyRules 
> and allow user to extend the ability of MV matching



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to