Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
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).