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 34bb91085b4 HIVE-26129: Non blocking DROP CONNECTOR (Denys Kuzmenko, 
reviewed by Naveen Gangam)
34bb91085b4 is described below

commit 34bb91085b418b8eac8a08af2951050bfdc7b08e
Author: Denys Kuzmenko <[email protected]>
AuthorDate: Thu Apr 21 16:27:56 2022 +0200

    HIVE-26129: Non blocking DROP CONNECTOR (Denys Kuzmenko, reviewed by Naveen 
Gangam)
    
    Closes #3173
---
 .../dataconnector/drop/DropDataConnectorAnalyzer.java  |  3 ++-
 .../hadoop/hive/ql/lockmgr/TestDbTxnManager2.java      | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/dataconnector/drop/DropDataConnectorAnalyzer.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/dataconnector/drop/DropDataConnectorAnalyzer.java
index 7cb8b8b4d64..2593c1ef187 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/ddl/dataconnector/drop/DropDataConnectorAnalyzer.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/dataconnector/drop/DropDataConnectorAnalyzer.java
@@ -50,7 +50,8 @@ public class DropDataConnectorAnalyzer extends 
BaseSemanticAnalyzer {
     }
 
     inputs.add(new ReadEntity(connector));
-    outputs.add(new WriteEntity(connector, 
WriteEntity.WriteType.DDL_EXCLUSIVE));
+    // Neither DummyTxnManager nor DbTxnManageer acquire any locks with 
`DATACONNECTOR` type
+    outputs.add(new WriteEntity(connector, WriteEntity.WriteType.DDL_NO_LOCK));
 
     DropDataConnectorDesc desc = new DropDataConnectorDesc(connectorName, 
ifExists);
     rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), 
desc)));
diff --git 
a/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java 
b/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java
index 1ec94df0087..0f86fd3b87a 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java
@@ -3914,4 +3914,22 @@ public class TestDbTxnManager2 extends 
DbTxnManagerEndToEndTestBase{
     driver.getFetchTask().fetch(res);
     Assert.assertEquals("Expecting 1 rows and found " + res.size(), 1, 
res.size());
   }
+  
+  @Test
+  public void testDbConnectorNoLocks() throws Exception {
+    driver.run("DROP CONNECTOR IF EXISTS derby_auth");
+
+    driver.run("CREATE CONNECTOR IF NOT EXISTS derby_auth " +
+      "TYPE 'derby' " +
+      "URL 'jdbc:derby:./target/tmp/junit_metastore_db;create=true' " +
+      "WITH DCPROPERTIES ( " +
+      "   'hive.sql.dbcp.username'='APP', " +
+      "   'hive.sql.dbcp.password'='mine')");
+    
+    driver.compileAndRespond("DROP CONNECTOR derby_auth");
+    
+    driver.lockAndRespond();
+    List<ShowLocksResponseElement> locks = getLocks();
+    Assert.assertEquals("Unexpected lock count", 0, locks.size());
+  }
 }

Reply via email to