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());
+ }
}