You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by dk...@apache.org on 2022/03/23 08:07:47 UTC

[hive] branch master updated: HIVE-26051: Non blocking ALTER MATERIALIZED VIEW REWRITE (Denys Kuzmenko, reviewed by Krisztian Kasa)

This is an automated email from the ASF dual-hosted git repository.

dkuzmenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 7dc821d  HIVE-26051: Non blocking ALTER MATERIALIZED VIEW REWRITE (Denys Kuzmenko, reviewed by Krisztian Kasa)
7dc821d is described below

commit 7dc821dfad7718630d90a2afe9c08b3eb7d15c7a
Author: Denys Kuzmenko <dk...@cloudera.com>
AuthorDate: Wed Mar 23 09:07:31 2022 +0100

    HIVE-26051: Non blocking ALTER MATERIALIZED VIEW REWRITE (Denys Kuzmenko, reviewed by Krisztian Kasa)
    
    Closes #3109
---
 .../alter/rewrite/AlterMaterializedViewRewriteAnalyzer.java            | 3 ++-
 ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java           | 2 +-
 ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java                | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rewrite/AlterMaterializedViewRewriteAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rewrite/AlterMaterializedViewRewriteAnalyzer.java
index 6e479df..0dd0c4f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rewrite/AlterMaterializedViewRewriteAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/view/materialized/alter/rewrite/AlterMaterializedViewRewriteAnalyzer.java
@@ -85,7 +85,8 @@ public class AlterMaterializedViewRewriteAnalyzer extends BaseSemanticAnalyzer {
     }
 
     inputs.add(new ReadEntity(materializedViewTable));
-    outputs.add(new WriteEntity(materializedViewTable, WriteEntity.WriteType.DDL_EXCLUSIVE));
+    outputs.add(new WriteEntity(materializedViewTable, AcidUtils.isLocklessReadsSupported(materializedViewTable, conf) ?
+      WriteEntity.WriteType.DDL_EXCL_WRITE : WriteEntity.WriteType.DDL_EXCLUSIVE));
 
     // Create task for alterMVRewriteDesc
     DDLWork work = new DDLWork(getInputs(), getOutputs(), desc);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
index 21ae79a..0ea01fc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
@@ -205,7 +205,7 @@ public class WriteEntity extends Entity implements Serializable {
    * @param op Operation type from the alter table description
    * @return the write type this should use.
    */
-  public static WriteType determineAlterTableWriteType(AlterTableType op, Table table, Configuration conf) {
+  public static WriteType determineAlterTableWriteType(AlterTableType op, Table table, HiveConf conf) {
     switch (op) {
     case RENAME_COLUMN:
     case CLUSTERED_BY:
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java
index ebf2d79..4d755cb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java
@@ -409,7 +409,7 @@ public class AcidUtils {
         + String.format(DELTA_DIGITS, visibilityTxnId);
   }
 
-  public static boolean isLocklessReadsSupported(Table table, Configuration conf) {
+  public static boolean isLocklessReadsSupported(Table table, HiveConf conf) {
     return HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_ACID_LOCKLESS_READS_ENABLED)
         && AcidUtils.isTransactionalTable(table);
   }