[
https://issues.apache.org/jira/browse/CALCITE-3825?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17047012#comment-17047012
]
Julian Hyde commented on CALCITE-3825:
--------------------------------------
Some late review comments. Was it necessary to make the new classes and their
constructors public? You were able to make this refactoring because the rules
were private; the next person who needs to refactor will not have that luxury.
> Split AbstractMaterializedViewRule into multiple classes
> --------------------------------------------------------
>
> Key: CALCITE-3825
> URL: https://issues.apache.org/jira/browse/CALCITE-3825
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Jesus Camacho Rodriguez
> Assignee: Jesus Camacho Rodriguez
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.23.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> AbstractMaterializedViewRule contains a materialized view-based rewriting
> algorithm that has been there for multiple releases and it is used by some
> engines relying in Calcite, e.g., Apache Hive.
> The main reason to have a single file/class for the rule was to make the
> logic self-contained instead of spreading it between multiple files from the
> onset, as it was experimental and we were not sure how far the implementation
> would go. In retrospective, we should have refactored that code sooner rather
> than later, since it makes very difficult to understand and maintain logic
> that is already complicated enough.
> This issue is to split AbstractMaterializedViewRule into multiple
> files/classes (it already contained multiple internal classes).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)