You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2015/04/02 23:11:22 UTC
phoenix git commit: Fix for UPSERT with autocommit
Repository: phoenix
Updated Branches:
refs/heads/txn 0c0dbb56c -> ab6fac2b1
Fix for UPSERT with autocommit
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/ab6fac2b
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/ab6fac2b
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/ab6fac2b
Branch: refs/heads/txn
Commit: ab6fac2b1c7458ca03395b2420b0c241c7a36b98
Parents: 0c0dbb5
Author: Thomas D'Silva <tw...@gmail.com>
Authored: Thu Apr 2 12:23:47 2015 -0700
Committer: Thomas D'Silva <tw...@gmail.com>
Committed: Thu Apr 2 12:23:47 2015 -0700
----------------------------------------------------------------------
.../phoenix/transactions/TransactionIT.java | 22 +++++++++++++++++++-
.../apache/phoenix/jdbc/PhoenixConnection.java | 5 ++++-
2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ab6fac2b/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
index 5ef2016..a4b5bc3 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/transactions/TransactionIT.java
@@ -81,9 +81,14 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
stmt.setInt(1, 1);
stmt.setInt(2, 1);
stmt.execute();
+
+ // verify no rows returned
+ ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t");
+ assertFalse(rs.next());
+
conn.commit();
// verify row exists
- ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t");
+ rs = conn.createStatement().executeQuery("SELECT * FROM t");
assertTrue(rs.next());
assertEquals(1,rs.getInt(1));
assertEquals(1,rs.getInt(1));
@@ -95,6 +100,21 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
}
@Test
+ public void testUpsertWithAutocommit() throws Exception {
+ Connection conn = DriverManager.getConnection(getUrl());
+ String ddl = "CREATE TABLE t (k1 INTEGER PRIMARY KEY, k2 INTEGER) transactional=true";
+ try {
+ conn.setAutoCommit(true);
+ conn.createStatement().execute(ddl);
+ // verify no rows returned
+ ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t");
+ assertFalse(rs.next());
+ } finally {
+ conn.close();
+ }
+ }
+
+ @Test
public void testColConflicts() throws Exception {
Connection conn1 = DriverManager.getConnection(getUrl());
Connection conn2 = DriverManager.getConnection(getUrl());
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ab6fac2b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java
index a646d96..240a599 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java
@@ -453,7 +453,10 @@ public class PhoenixConnection implements Connection, org.apache.phoenix.jdbc.Jd
}
}
- public void addTxParticipant(TransactionAware txnAware) {
+ public void addTxParticipant(TransactionAware txnAware) throws SQLException {
+ if (!isTransactionStarted()) {
+ startTransaction();
+ }
txContext.addTransactionAware(txnAware);
}