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 <twdsi...@gmail.com>
Authored: Thu Apr 16 15:18:10 2015 -0700
Committer: Thomas D'Silva <twdsi...@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));

Reply via email to