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

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

                Author: ASF GitHub Bot
            Created on: 15/Nov/21 16:20
            Start Date: 15/Nov/21 16:20
    Worklog Time Spent: 10m 
      Work Description: deniskuzZ commented on a change in pull request #2772:
URL: https://github.com/apache/hive/pull/2772#discussion_r749481884



##########
File path: ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java
##########
@@ -3359,4 +3366,59 @@ public void testUpdateSnapshotIsolation() throws 
Exception {
     Assert.assertEquals("1\t2", res.get(0));
   }
 
-}
+  @Test
+  public void testDropTable() throws Exception {
+    dropTable(new String[] {"tab_acid"});
+
+    conf.setBoolVar(HiveConf.ConfVars.HIVE_TXN_LOCKLESS_READS_ENABLED, true);
+    driver2.getConf().setBoolVar( 
HiveConf.ConfVars.HIVE_TXN_NON_BLOCKING_DROP_TABLE, true);
+
+    driver.run("create table if not exists tab_acid (a int, b int) partitioned 
by (p string) " +
+      "stored as orc TBLPROPERTIES ('transactional'='true')");
+    driver.run("insert into tab_acid partition(p) (a,b,p) 
values(1,2,'foo'),(3,4,'bar')");
+
+    driver.compileAndRespond("select * from tab_acid");
+
+    DbTxnManager txnMgr2 = (DbTxnManager) 
TxnManagerFactory.getTxnManagerFactory().getTxnManager(conf);
+    swapTxnManager(txnMgr2);
+    driver2.run("drop table if exists tab_acid");
+
+    swapTxnManager(txnMgr);
+    driver.run();
+
+    FileSystem fs = FileSystem.get(conf);
+    FileStatus[] stat = fs.listStatus(new 
Path(Paths.get("target/warehouse").toUri()),
+      p -> p.getName().matches("tab_acid" + VISIBILITY_PATTERN));
+    if (1 != stat.length) {
+      Assert.fail("Table data was removed from FS");
+    }
+
+    List<String> res = new ArrayList<>();
+    driver.getFetchTask().fetch(res);
+    Assert.assertEquals("No records found", 2, res.size());
+
+    try {
+      driver.run("select * from tab_acid");
+    } catch (CommandProcessorException ex) {
+      Assert.assertEquals(ErrorMsg.INVALID_TABLE.getErrorCode(), 
ex.getResponseCode());
+      
Assert.assertTrue(ex.getMessage().contains(ErrorMsg.INVALID_TABLE.getMsg("'tab_acid'")));
+    }
+
+    //re-create table with the same name
+    driver.run("create table if not exists tab_acid (a int, b int) partitioned 
by (p string) " +
+      "stored as orc TBLPROPERTIES ('transactional'='true')");
+    driver.run("insert into tab_acid partition(p) (a,b,p) 
values(1,2,'foo'),(3,4,'bar')");
+
+    driver.run("select * from tab_acid ");
+    res = new ArrayList<>();
+    driver.getFetchTask().fetch(res);
+    Assert.assertEquals("No records found", 2, res.size());
+
+    stat = fs.listStatus(new Path(Paths.get("target/warehouse").toUri()),

Review comment:
       fixed




-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

    Worklog Id:     (was: 681601)
    Time Spent: 5.5h  (was: 5h 20m)

> Non blocking DROP TABLE implementation
> --------------------------------------
>
>                 Key: HIVE-24445
>                 URL: https://issues.apache.org/jira/browse/HIVE-24445
>             Project: Hive
>          Issue Type: New Feature
>          Components: Hive
>            Reporter: Zoltan Chovan
>            Assignee: Denys Kuzmenko
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> Implement a way to execute drop table operations in a way that doesn't have 
> to wait for currently running read operations to be finished.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to