Repository: hive
Updated Branches:
  refs/heads/branch-3 ae4df6279 -> 9adf5a950


HIVE-17457 - IOW Acid Insert Overwrite when the transaction fails (Eugene 
Koifman, reviewed by Sergey Shelukhin)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/9adf5a95
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/9adf5a95
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/9adf5a95

Branch: refs/heads/branch-3
Commit: 9adf5a95069ae5bbd65ce90b779c8dab180e0e70
Parents: ae4df62
Author: Eugene Koifman <ekoif...@apache.org>
Authored: Thu May 3 09:23:30 2018 -0700
Committer: Eugene Koifman <ekoif...@apache.org>
Committed: Thu May 3 09:23:30 2018 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/lockmgr/DbTxnManager.java     |  2 +-
 .../apache/hadoop/hive/ql/TestTxnCommands.java   | 19 +++++++++++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/9adf5a95/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java 
b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
index 68b4c3b..94f6b00 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
@@ -361,7 +361,7 @@ public final class DbTxnManager extends HiveTxnManagerImpl {
             return true;
           case INSERT_OVERWRITE:
             //see HIVE-18154
-            return false; // TODO: is this still relevant for insert-only 
tables?
+            return false;
           default:
             //not relevant for LOAD
             return false;

http://git-wip-us.apache.org/repos/asf/hive/blob/9adf5a95/ql/src/test/org/apache/hadoop/hive/ql/TestTxnCommands.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/TestTxnCommands.java 
b/ql/src/test/org/apache/hadoop/hive/ql/TestTxnCommands.java
index 6a3be39..6faba42 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/TestTxnCommands.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/TestTxnCommands.java
@@ -74,11 +74,26 @@ public class TestTxnCommands extends 
TxnCommandsBaseForTests {
     return TEST_DATA_DIR;
   }
 
-  @Test//todo: what is this for?
+  /**
+   * tests that a failing Insert Overwrite (which creates a new base_x) is 
properly marked as
+   * aborted.
+   */
+  @Test
   public void testInsertOverwrite() throws Exception {
     runStatementOnDriver("insert overwrite table " + Table.NONACIDORCTBL + " 
select a,b from " + Table.NONACIDORCTBL2);
     runStatementOnDriver("create table " + Table.NONACIDORCTBL2 + "3(a int, b 
int) clustered by (a) into " + BUCKET_COUNT + " buckets stored as orc 
TBLPROPERTIES ('transactional'='false')");
-
+    runStatementOnDriver("insert into " + Table.ACIDTBL + " values(1,2)");
+    List<String> rs = runStatementOnDriver("select a from " + Table.ACIDTBL + 
" where b = 2");
+    Assert.assertEquals(1, rs.size());
+    Assert.assertEquals("1", rs.get(0));
+    hiveConf.setBoolVar(HiveConf.ConfVars.HIVETESTMODEROLLBACKTXN, true);
+    runStatementOnDriver("insert into " + Table.ACIDTBL + " values(3,2)");
+    hiveConf.setBoolVar(HiveConf.ConfVars.HIVETESTMODEROLLBACKTXN, false);
+    runStatementOnDriver("insert into " + Table.ACIDTBL + " values(5,6)");
+    rs = runStatementOnDriver("select a from " + Table.ACIDTBL + " order by 
a");
+    Assert.assertEquals(2, rs.size());
+    Assert.assertEquals("1", rs.get(0));
+    Assert.assertEquals("5", rs.get(1));
   }
   @Ignore("not needed but useful for testing")
   @Test

Reply via email to