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/17 00:18:14 UTC

phoenix git commit: PHOENIX-1813 Support reading your own writes

Repository: phoenix
Updated Branches:
  refs/heads/txn f0c4d0661 -> 324b566f4


PHOENIX-1813 Support reading your own writes


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/324b566f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/324b566f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/324b566f

Branch: refs/heads/txn
Commit: 324b566f4ece9d031e5fb1de7e3bd0ba9660fd1e
Parents: f0c4d06
Author: Thomas D'Silva <tw...@gmail.com>
Authored: Thu Apr 16 15:18:10 2015 -0700
Committer: Thomas D'Silva <tw...@gmail.com>
Committed: Thu Apr 16 15:18:10 2015 -0700

----------------------------------------------------------------------
 .../org/apache/phoenix/transactions/TransactionIT.java   | 11 +++++++----
 .../java/org/apache/phoenix/jdbc/PhoenixStatement.java   |  4 ++++
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/324b566f/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 35f88e4..807234d 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
@@ -86,7 +86,7 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
 	}
 	
 	@Test
-	public void testUpsert() throws Exception {
+	public void testReadOwnWrites() throws Exception {
 		String selectSql = "SELECT * FROM "+FULL_TABLE_NAME;
 		Connection conn = DriverManager.getConnection(getUrl());
 		try {
@@ -102,12 +102,15 @@ public class TransactionIT extends BaseHBaseManagedTimeIT {
 			setRowKeyColumns(stmt, 2);
 			stmt.execute();
 	        
-	        // verify no rows returned 
+	        // verify rows can be read even though commit has not been called
 			rs = conn.createStatement().executeQuery(selectSql);
-	     	assertFalse(rs.next());
+			validateRowKeyColumns(rs, 1);
+	        validateRowKeyColumns(rs, 2);
+	        assertFalse(rs.next());
+	        
 	        conn.commit();
 	        
-	        // verify row exists
+	        // verify rows can be read after commit
 	        rs = conn.createStatement().executeQuery(selectSql);
 	        validateRowKeyColumns(rs, 1);
 	        validateRowKeyColumns(rs, 2);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/324b566f/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
index 2c0021f..3ccc772 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
@@ -243,6 +243,10 @@ public class PhoenixStatement implements Statement, SQLCloseable, org.apache.pho
                         if (connection.getAutoCommit()) {
                             connection.commit(); // Forces new read point for next statement
                         }
+                        else {
+                        	// send mutations to hbase, so they are visible to subsequent reads
+                        	connection.getMutationState().send();
+                        }
                         if (logger.isDebugEnabled()) {
                             String explainPlan = QueryUtil.getExplainPlan(resultIterator);
                             logger.debug(LogUtil.addCustomAnnotations("Explain plan: " + explainPlan, connection));