You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ek...@apache.org on 2018/05/03 16:22:49 UTC
hive git commit: HIVE-17457 - IOW Acid Insert Overwrite when the
transaction fails (Eugene Koifman, reviewed by Sergey Shelukhin)
Repository: hive
Updated Branches:
refs/heads/master 2c7f9c26e -> dfaf90f2b
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/dfaf90f2
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/dfaf90f2
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/dfaf90f2
Branch: refs/heads/master
Commit: dfaf90f2b3a69477ea6b38144cf4ed55de9c4d95
Parents: 2c7f9c2
Author: Eugene Koifman <ek...@apache.org>
Authored: Thu May 3 09:22:41 2018 -0700
Committer: Eugene Koifman <ek...@apache.org>
Committed: Thu May 3 09:22:41 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/dfaf90f2/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/dfaf90f2/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