[ https://issues.apache.org/jira/browse/CALCITE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17418425#comment-17418425 ]
xzh_dz commented on CALCITE-3409: --------------------------------- [~zabetak] [~jcamachorodriguez] thanks for review.. I update the code and avoid changing the `{{RelOptPlanner`}} APIs. Using `CustomMaterializedViewRecognitionRuleTest` to test custom materialized view recognition rules.And overload `RelOptMaterializations#useMaterializedViews()` method ,It can be compatible with the original implementation.Please review the [latest commit|[https://github.com/apache/calcite/pull/2094].|https://github.com/apache/calcite/pull/2094].Thanks] 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: 6h 10m > 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)