clean + fix merge bugs

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

Branch: refs/heads/omid
Commit: ffac47ee60c3af88b220e09dce230e718a68c42d
Parents: c840cc9
Author: Ohad Shacham <[email protected]>
Authored: Tue May 9 12:12:09 2017 +0300
Committer: Ohad Shacham <[email protected]>
Committed: Tue May 9 12:12:09 2017 +0300

----------------------------------------------------------------------
 .../org/apache/phoenix/tx/TxCheckpointIT.java   | 39 ++++++++++++++------
 .../apache/phoenix/execute/MutationState.java   | 23 +-----------
 .../transaction/OmidTransactionContext.java     |  6 ---
 .../transaction/PhoenixTransactionContext.java  |  8 ----
 .../transaction/TephraTransactionContext.java   |  1 -
 5 files changed, 28 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
index aac9586..989a97e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
@@ -36,6 +36,7 @@ import org.apache.phoenix.end2end.ParallelStatsDisabledIT;
 import org.apache.phoenix.execute.MutationState;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.query.QueryServices;
+import org.apache.phoenix.schema.PTableImpl;
 import 
org.apache.phoenix.transaction.PhoenixTransactionContext.PhoenixVisibilityLevel;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.SchemaUtil;
@@ -48,12 +49,25 @@ import org.junit.runners.Parameterized.Parameters;
 public class TxCheckpointIT extends ParallelStatsDisabledIT {
        
        private final boolean localIndex;
-       private final boolean mutable;
-
-       public TxCheckpointIT(boolean localIndex, boolean mutable) {
-               this.localIndex = localIndex;
-               this.mutable = mutable;
+       private final String tableDDLOptions;
 
+       public TxCheckpointIT(boolean localIndex, boolean mutable, boolean 
columnEncoded) {
+           StringBuilder optionBuilder = new StringBuilder();
+           this.localIndex = localIndex;
+           if (!columnEncoded) {
+               if (optionBuilder.length()!=0)
+                   optionBuilder.append(",");
+               optionBuilder.append("COLUMN_ENCODED_BYTES=0");
+           }
+           if (!mutable) {
+               if (optionBuilder.length()!=0)
+                   optionBuilder.append(",");
+               optionBuilder.append("IMMUTABLE_ROWS=true");
+               if (!columnEncoded) {
+                   
optionBuilder.append(",IMMUTABLE_STORAGE_SCHEME="+PTableImpl.ImmutableStorageScheme.ONE_CELL_PER_COLUMN);
+               }
+           }
+           this.tableDDLOptions = optionBuilder.toString();
        }
        
     private static Connection getConnection() throws SQLException {
@@ -66,10 +80,11 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT 
{
         return conn;
     }
        
-       @Parameters(name="TxCheckpointIT_localIndex={0},mutable={1}") // name 
is used by failsafe as file name in reports
+       
@Parameters(name="TxCheckpointIT_localIndex={0},mutable={1},columnEncoded={2}") 
// name is used by failsafe as file name in reports
     public static Collection<Boolean[]> data() {
         return Arrays.asList(new Boolean[][] {     
-                 { false, false }, { false, true }, { true, false }, { true, 
true }  
+                { false, false, false }, { false, false, true }, { false, 
true, false }, { false, true, true },
+                { true, false, false }, { true, false, true }, { true, true, 
false }, { true, true, true }
            });
     }
     
@@ -86,7 +101,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT {
         Connection conn = getConnection(props);
         conn.setAutoCommit(true);
         conn.createStatement().execute("CREATE SEQUENCE "+seqName);
-        conn.createStatement().execute("CREATE TABLE " + fullTableName + "(pk 
INTEGER PRIMARY KEY, val INTEGER)"+(!mutable? " IMMUTABLE_ROWS=true" : ""));
+        conn.createStatement().execute("CREATE TABLE " + fullTableName + "(pk 
INTEGER PRIMARY KEY, val INTEGER)"+tableDDLOptions);
         conn.createStatement().execute("CREATE "+(localIndex? "LOCAL " : 
"")+"INDEX " + indexName + " ON " + fullTableName + "(val)");
 
         conn.createStatement().execute("UPSERT INTO " + fullTableName + " 
VALUES (NEXT VALUE FOR " + seqName + ",1)");
@@ -122,7 +137,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT 
{
         conn.setAutoCommit(false);
         try {
             Statement stmt = conn.createStatement();
-            stmt.execute("CREATE TABLE " + fullTableName + "(k VARCHAR PRIMARY 
KEY, v1 VARCHAR, v2 VARCHAR)"+(!mutable? " IMMUTABLE_ROWS=true" : ""));
+            stmt.execute("CREATE TABLE " + fullTableName + "(k VARCHAR PRIMARY 
KEY, v1 VARCHAR, v2 VARCHAR)"+tableDDLOptions);
             stmt.execute(indexDDL);
             
             stmt.executeUpdate("upsert into " + fullTableName + " values('x1', 
'y1', 'a1')");
@@ -212,7 +227,7 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT 
{
                        Statement stmt = conn.createStatement();
 
                        stmt.execute("CREATE TABLE " + fullTableName + "(ID 
BIGINT NOT NULL PRIMARY KEY, v1 VARCHAR, v2 VARCHAR)"
-                                       + (!mutable ? " IMMUTABLE_ROWS=true" : 
""));
+                                       + tableDDLOptions);
                        stmt.execute("CREATE " + (localIndex ? "LOCAL " : "")
                                        + "INDEX " + indexName + " ON " + 
fullTableName + " (v1) INCLUDE(v2)");
 
@@ -302,9 +317,9 @@ public class TxCheckpointIT extends ParallelStatsDisabledIT 
{
                        conn.setAutoCommit(false);
                        Statement stmt = conn.createStatement();
                        stmt.execute("CREATE TABLE " + fullTableName + "1(ID1 
BIGINT NOT NULL PRIMARY KEY, FK1A INTEGER, FK1B INTEGER)"
-                                       + (!mutable ? " IMMUTABLE_ROWS=true" : 
""));
+                                       + tableDDLOptions);
                        stmt.execute("CREATE TABLE " + fullTableName + "2(ID2 
BIGINT NOT NULL PRIMARY KEY, FK2 INTEGER)"
-                                       + (!mutable ? " IMMUTABLE_ROWS=true" : 
""));
+                                       + tableDDLOptions);
                        stmt.execute("CREATE " + (localIndex ? "LOCAL " : "")
                                        + "INDEX " + indexName + " ON " + 
fullTableName + "1 (FK1B)");
                        

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java 
b/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java
index e8d963e..c4d01b9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java
@@ -203,7 +203,7 @@ public class MutationState implements SQLCloseable {
      * when a data table transaction is started before the create index
      * but completes after it. In this case, we need to rerun the data
      * table transaction after the index creation so that the index rows
-     * are generated. See {@link #addDMLFence(PTable)} and TEPHRA-157
+     * are generated. See TEPHRA-157
      * for more information.
      * @param dataTable the data table upon which an index is being added
      * @throws SQLException
@@ -222,22 +222,6 @@ public class MutationState implements SQLCloseable {
         }
     }
     
-    /**
-     * Add an entry to the change set representing the DML operation that is 
starting.
-     * These entries will not conflict with each other, but they will conflict 
with a
-     * DDL operation of creating an index. See {@link #addDMLFence(PTable)} 
and TEPHRA-157
-     * for more information.
-     * @param table the table which is doing DML
-     * @throws SQLException
-     */
-    private void addDMLFence(PTable table) throws SQLException {
-        if (table.getType() == PTableType.INDEX || !table.isTransactional()) {
-            return;
-        }
-
-        phoenixTransactionContext.markDMLFence(table);
-    }
-    
     public boolean checkpointIfNeccessary(MutationPlan plan) throws 
SQLException {
         if (! phoenixTransactionContext.isTransactionRunning()  || 
plan.getTargetRef() == null || plan.getTargetRef().getTable() == null || 
!plan.getTargetRef().getTable().isTransactional()) {
             return false;
@@ -970,7 +954,6 @@ public class MutationState implements SQLCloseable {
                         if (table.isTransactional()) {
                             // Track tables to which we've sent uncommitted 
data
                             txTableRefs.add(origTableRef);
-//                            addDMLFence(table);
                             
uncommittedPhysicalNames.add(table.getPhysicalName().getString());
 
                             // If we have indexes, wrap the HTable in a 
delegate HTable that
@@ -1231,10 +1214,6 @@ public class MutationState implements SQLCloseable {
                             startTransaction();
                             // Add back read fences
                             Set<TableRef> txTableRefs = txMutations.keySet();
-//                            for (TableRef tableRef : txTableRefs) {
-//                                PTable dataTable = tableRef.getTable();
-//                                addDMLFence(dataTable);
-//                            }
                             try {
                                 // Only retry if an index was added
                                 retryCommit = 
shouldResubmitTransaction(txTableRefs);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
index 25ec0cf..2ae95bb 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/OmidTransactionContext.java
@@ -45,12 +45,6 @@ public class OmidTransactionContext implements 
PhoenixTransactionContext {
     }
 
     @Override
-    public void markDMLFence(PTable table) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
     public void join(PhoenixTransactionContext ctx) {
         // TODO Auto-generated method stub
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
index 5b1a837..a13b5a6 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/PhoenixTransactionContext.java
@@ -87,14 +87,6 @@ public interface PhoenixTransactionContext {
             throws SQLException;
 
     /**
-     * mark DML with table information for conflict detection of concurrent
-     * DDL operation, as explained in [PHOENIX-2478], [TEPHRA-157] and 
[OMID-56].
-     *
-     * @param table  the table that the DML command works on
-     */
-    public void markDMLFence(PTable table);
-
-    /**
      * Augment the current context with ctx modified keys
      *
      * @param ctx

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ffac47ee/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
index 447ce0e..5c4178d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/transaction/TephraTransactionContext.java
@@ -261,7 +261,6 @@ public class TephraTransactionContext implements 
PhoenixTransactionContext {
         }
     }
 
-    @Override
     public void markDMLFence(PTable table) {
         byte[] logicalKey = table.getName().getBytes();
         TransactionAware logicalTxAware = VisibilityFence.create(logicalKey);

Reply via email to