[ 
https://issues.apache.org/jira/browse/HIVE-25253?focusedWorklogId=614391&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-614391
 ]

ASF GitHub Bot logged work on HIVE-25253:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 24/Jun/21 09:07
            Start Date: 24/Jun/21 09:07
    Worklog Time Spent: 10m 
      Work Description: kasakrisz commented on a change in pull request #2401:
URL: https://github.com/apache/hive/pull/2401#discussion_r657768898



##########
File path: 
ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rebuild/AlterMaterializedViewRebuildAnalyzer.java
##########
@@ -261,41 +263,61 @@ protected RelNode 
applyMaterializedViewRewriting(RelOptPlanner planner, RelNode
         if (materialization.isSourceTablesCompacted()) {
           return calcitePreMVRewritingPlan;
         }
-        // First we need to check if it is valid to convert to MERGE/INSERT 
INTO.
-        // If we succeed, we modify the plan and afterwards the AST.
-        // MV should be an acid table.
-        MaterializedViewRewritingRelVisitor visitor = new 
MaterializedViewRewritingRelVisitor();
-        visitor.go(basePlan);
-        if (visitor.isRewritingAllowed()) {
-          if (materialization.isSourceTablesUpdateDeleteModified()) {
-            if (visitor.isContainsAggregate()) {
-              if (visitor.getCountIndex() < 0) {
-                // count(*) is necessary for determine which rows should be 
deleted from the view
-                // if view definition does not have it incremental rebuild can 
not be performed, bail out
-                return calcitePreMVRewritingPlan;
-              }
-              return toAggregateInsertDeleteIncremental(basePlan, mdProvider, 
executorProvider);
-            } else {
-              return toJoinInsertDeleteIncremental(
-                      basePlan, mdProvider, executorProvider, optCluster, 
calcitePreMVRewritingPlan);
-            }
-          } else {
-            // Trigger rewriting to remove UNION branch with MV
-            if (visitor.isContainsAggregate()) {
-              return toAggregateInsertIncremental(basePlan, mdProvider, 
executorProvider, optCluster, calcitePreMVRewritingPlan);
-            } else {
-              return toJoinInsertIncremental(basePlan, mdProvider, 
executorProvider);
-            }
-          }
-        } else if (materialization.isSourceTablesUpdateDeleteModified()) {
-          return calcitePreMVRewritingPlan;
+
+        RelNode incrementalRebuildPlan = toIncrementalRebuild(

Review comment:
       renamed

##########
File path: 
ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rebuild/AlterMaterializedViewRebuildAnalyzer.java
##########
@@ -261,41 +263,61 @@ protected RelNode 
applyMaterializedViewRewriting(RelOptPlanner planner, RelNode
         if (materialization.isSourceTablesCompacted()) {
           return calcitePreMVRewritingPlan;
         }
-        // First we need to check if it is valid to convert to MERGE/INSERT 
INTO.
-        // If we succeed, we modify the plan and afterwards the AST.
-        // MV should be an acid table.
-        MaterializedViewRewritingRelVisitor visitor = new 
MaterializedViewRewritingRelVisitor();
-        visitor.go(basePlan);
-        if (visitor.isRewritingAllowed()) {
-          if (materialization.isSourceTablesUpdateDeleteModified()) {
-            if (visitor.isContainsAggregate()) {
-              if (visitor.getCountIndex() < 0) {
-                // count(*) is necessary for determine which rows should be 
deleted from the view
-                // if view definition does not have it incremental rebuild can 
not be performed, bail out
-                return calcitePreMVRewritingPlan;
-              }
-              return toAggregateInsertDeleteIncremental(basePlan, mdProvider, 
executorProvider);
-            } else {
-              return toJoinInsertDeleteIncremental(
-                      basePlan, mdProvider, executorProvider, optCluster, 
calcitePreMVRewritingPlan);
-            }
-          } else {
-            // Trigger rewriting to remove UNION branch with MV
-            if (visitor.isContainsAggregate()) {
-              return toAggregateInsertIncremental(basePlan, mdProvider, 
executorProvider, optCluster, calcitePreMVRewritingPlan);
-            } else {
-              return toJoinInsertIncremental(basePlan, mdProvider, 
executorProvider);
-            }
-          }
-        } else if (materialization.isSourceTablesUpdateDeleteModified()) {
-          return calcitePreMVRewritingPlan;
+
+        RelNode incrementalRebuildPlan = toIncrementalRebuild(
+                basePlan, mdProvider, executorProvider, optCluster, 
calcitePreMVRewritingPlan, materialization);
+        if (mvRebuildMode != 
MaterializationRebuildMode.INSERT_OVERWRITE_REBUILD) {
+          return incrementalRebuildPlan;
         }
+
+        return toPartitionInsertOverwrite(

Review comment:
       renamed




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 614391)
    Time Spent: 20m  (was: 10m)

> Incremental rebuild of partitioned insert only materialized views
> -----------------------------------------------------------------
>
>                 Key: HIVE-25253
>                 URL: https://issues.apache.org/jira/browse/HIVE-25253
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO, Materialized views
>            Reporter: Krisztian Kasa
>            Assignee: Krisztian Kasa
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>




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

Reply via email to