phoenix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tdsi...@apache.org
Subject [1/2] phoenix git commit: PHOENIX-2791 Support append only schema declaration
Date Tue, 10 May 2016 23:06:27 GMT
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 262078251 -> 0047e5d4c


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
index 076264a..70414d5 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
@@ -140,6 +140,7 @@ public class PTableImpl implements PTable {
     private long updateCacheFrequency;
     private boolean isNamespaceMapped;
     private String autoPartitionSeqName;
+    private boolean isAppendOnlySchema;
 
     public PTableImpl() {
         this.indexes = Collections.emptyList();
@@ -185,7 +186,7 @@ public class PTableImpl implements PTable {
         init(tenantId, this.schemaName, this.tableName, PTableType.INDEX, state, timeStamp,
sequenceNumber, pkName, bucketNum, columns,
             PTableStats.EMPTY_STATS, this.schemaName, parentTableName, indexes, isImmutableRows,
physicalNames, defaultFamilyName,
             null, disableWAL, multiTenant, storeNulls, viewType, viewIndexId, indexType,
baseColumnCount, rowKeyOrderOptimizable,
-            isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMpped,
null);
+            isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMpped,
null, false);
     }
 
     public PTableImpl(long timeStamp) { // For delete marker
@@ -228,7 +229,8 @@ public class PTableImpl implements PTable {
                 table.getSequenceNumber(), table.getPKName(), table.getBucketNum(), getColumnsToClone(table),
parentSchemaName, table.getParentTableName(),
                 indexes, table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
viewStatement,
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(), table.getIndexType(),
-                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(),
table.isNamespaceMapped(), table.getAutoPartitionSeqName());
+                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(), 
+                table.getIndexDisableTimestamp(), table.isNamespaceMapped(), table.getAutoPartitionSeqName(),
table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PTable table, List<PColumn> columns) throws
SQLException {
@@ -237,7 +239,8 @@ public class PTableImpl implements PTable {
                 table.getSequenceNumber(), table.getPKName(), table.getBucketNum(), columns,
table.getParentSchemaName(), table.getParentTableName(),
                 table.getIndexes(), table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(), table.getIndexType(),
-                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(),
table.isNamespaceMapped(), table.getAutoPartitionSeqName());
+                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(),
+                table.getIndexDisableTimestamp(), table.isNamespaceMapped(), table.getAutoPartitionSeqName(),
table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PTable table, long timeStamp, long sequenceNumber,
List<PColumn> columns) throws SQLException {
@@ -246,7 +249,8 @@ public class PTableImpl implements PTable {
                 sequenceNumber, table.getPKName(), table.getBucketNum(), columns, table.getParentSchemaName(),
table.getParentTableName(), table.getIndexes(),
                 table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(), table.isWALDisabled(),
                 table.isMultiTenant(), table.getStoreNulls(), table.getViewType(), table.getViewIndexId(),
table.getIndexType(), table.getTableStats(),
-                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), table.isNamespaceMapped(),
table.getAutoPartitionSeqName());
+                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), 
+                table.isNamespaceMapped(), table.getAutoPartitionSeqName(), table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PTable table, long timeStamp, long sequenceNumber,
List<PColumn> columns, boolean isImmutableRows) throws SQLException {
@@ -255,7 +259,8 @@ public class PTableImpl implements PTable {
                 sequenceNumber, table.getPKName(), table.getBucketNum(), columns, table.getParentSchemaName(),
table.getParentTableName(),
                 table.getIndexes(), isImmutableRows, table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(),
-                table.getIndexType(), table.getTableStats(), table.getBaseColumnCount(),
table.rowKeyOrderOptimizable(), table.isTransactional(), table.getUpdateCacheFrequency(),
table.getIndexDisableTimestamp(), table.isNamespaceMapped(), table.getAutoPartitionSeqName());
+                table.getIndexType(), table.getTableStats(), table.getBaseColumnCount(),
table.rowKeyOrderOptimizable(), table.isTransactional(), 
+                table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), table.isNamespaceMapped(),
table.getAutoPartitionSeqName(), table.isAppendOnlySchema());
     }
     
     public static PTableImpl makePTable(PTable table, long timeStamp, long sequenceNumber,
List<PColumn> columns, boolean isImmutableRows, boolean isWalDisabled,
@@ -265,7 +270,8 @@ public class PTableImpl implements PTable {
                 sequenceNumber, table.getPKName(), table.getBucketNum(), columns, table.getParentSchemaName(),
table.getParentTableName(),
                 table.getIndexes(), isImmutableRows, table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 isWalDisabled, isMultitenant, storeNulls, table.getViewType(), table.getViewIndexId(),
table.getIndexType(), table.getTableStats(),
-                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), isTransactional,
updateCacheFrequency, table.getIndexDisableTimestamp(), isNamespaceMapped, table.getAutoPartitionSeqName());
+                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), isTransactional,
updateCacheFrequency, table.getIndexDisableTimestamp(), 
+                isNamespaceMapped, table.getAutoPartitionSeqName(), table.isAppendOnlySchema());
     }
     
     public static PTableImpl makePTable(PTable table, PIndexState state) throws SQLException
{
@@ -275,7 +281,8 @@ public class PTableImpl implements PTable {
                 table.getParentSchemaName(), table.getParentTableName(), table.getIndexes(),
                 table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(), table.getIndexType(),
-                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(),
table.isNamespaceMapped(), table.getAutoPartitionSeqName());
+                table.getTableStats(), table.getBaseColumnCount(), table.rowKeyOrderOptimizable(),
table.isTransactional(), table.getUpdateCacheFrequency(),
+                table.getIndexDisableTimestamp(), table.isNamespaceMapped(), table.getAutoPartitionSeqName(),
table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PTable table, boolean rowKeyOrderOptimizable) throws
SQLException {
@@ -285,7 +292,8 @@ public class PTableImpl implements PTable {
                 table.getParentSchemaName(), table.getParentTableName(), table.getIndexes(),
                 table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(), table.getIndexType(), table.getTableStats(),
-                table.getBaseColumnCount(), rowKeyOrderOptimizable, table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), table.isNamespaceMapped(),
table.getAutoPartitionSeqName());
+                table.getBaseColumnCount(), rowKeyOrderOptimizable, table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), table.isNamespaceMapped(),

+                table.getAutoPartitionSeqName(), table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PTable table, PTableStats stats) throws SQLException
{
@@ -295,7 +303,8 @@ public class PTableImpl implements PTable {
                 table.getParentSchemaName(), table.getParentTableName(), table.getIndexes(),
                 table.isImmutableRows(), table.getPhysicalNames(), table.getDefaultFamilyName(),
table.getViewStatement(),
                 table.isWALDisabled(), table.isMultiTenant(), table.getStoreNulls(), table.getViewType(),
table.getViewIndexId(), table.getIndexType(), stats,
-                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), table.isNamespaceMapped(),
table.getAutoPartitionSeqName());
+                table.getBaseColumnCount(), table.rowKeyOrderOptimizable(), table.isTransactional(),
table.getUpdateCacheFrequency(), table.getIndexDisableTimestamp(), 
+                table.isNamespaceMapped(), table.getAutoPartitionSeqName(), table.isAppendOnlySchema());
     }
 
     public static PTableImpl makePTable(PName tenantId, PName schemaName, PName tableName,
PTableType type,
@@ -304,12 +313,12 @@ public class PTableImpl implements PTable {
             boolean isImmutableRows, List<PName> physicalNames, PName defaultFamilyName,
String viewExpression,
             boolean disableWAL, boolean multiTenant, boolean storeNulls, ViewType viewType,
Short viewIndexId,
             IndexType indexType, boolean rowKeyOrderOptimizable, boolean isTransactional,
long updateCacheFrequency,
-            long indexDisableTimestamp, boolean isNamespaceMapped, String autoPartitionSeqName)
throws SQLException {
+            long indexDisableTimestamp, boolean isNamespaceMapped, String autoPartitionSeqName,
boolean isAppendOnlySchema) throws SQLException {
         return new PTableImpl(tenantId, schemaName, tableName, type, state, timeStamp, sequenceNumber,
pkName, bucketNum, columns, dataSchemaName,
                 dataTableName, indexes, isImmutableRows, physicalNames, defaultFamilyName,
                 viewExpression, disableWAL, multiTenant, storeNulls, viewType, viewIndexId,
                 indexType, PTableStats.EMPTY_STATS, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT,
rowKeyOrderOptimizable, isTransactional,
-                updateCacheFrequency,indexDisableTimestamp, isNamespaceMapped, autoPartitionSeqName);
+                updateCacheFrequency,indexDisableTimestamp, isNamespaceMapped, autoPartitionSeqName,
isAppendOnlySchema);
     }
 
     public static PTableImpl makePTable(PName tenantId, PName schemaName, PName tableName,
PTableType type,
@@ -318,12 +327,14 @@ public class PTableImpl implements PTable {
             boolean isImmutableRows, List<PName> physicalNames, PName defaultFamilyName,
String viewExpression,
             boolean disableWAL, boolean multiTenant, boolean storeNulls, ViewType viewType,
Short viewIndexId,
             IndexType indexType, boolean rowKeyOrderOptimizable, boolean isTransactional,
long updateCacheFrequency,
-            @NotNull PTableStats stats, int baseColumnCount, long indexDisableTimestamp,
boolean isNamespaceMapped, String autoPartitionSeqName)
+            @NotNull PTableStats stats, int baseColumnCount, long indexDisableTimestamp,
boolean isNamespaceMapped, 
+            String autoPartitionSeqName, boolean isAppendOnlySchema)
             throws SQLException {
         return new PTableImpl(tenantId, schemaName, tableName, type, state, timeStamp, sequenceNumber,
pkName,
                 bucketNum, columns, dataSchemaName, dataTableName, indexes, isImmutableRows,
physicalNames,
                 defaultFamilyName, viewExpression, disableWAL, multiTenant, storeNulls, viewType,
viewIndexId,
-                indexType, stats, baseColumnCount, rowKeyOrderOptimizable, isTransactional,
updateCacheFrequency, indexDisableTimestamp, isNamespaceMapped, autoPartitionSeqName);
+                indexType, stats, baseColumnCount, rowKeyOrderOptimizable, isTransactional,
updateCacheFrequency, 
+                indexDisableTimestamp, isNamespaceMapped, autoPartitionSeqName, isAppendOnlySchema);
     }
 
     private PTableImpl(PName tenantId, PName schemaName, PName tableName, PTableType type,
PIndexState state,
@@ -331,11 +342,12 @@ public class PTableImpl implements PTable {
             PName parentSchemaName, PName parentTableName, List<PTable> indexes, boolean
isImmutableRows,
             List<PName> physicalNames, PName defaultFamilyName, String viewExpression,
boolean disableWAL, boolean multiTenant,
             boolean storeNulls, ViewType viewType, Short viewIndexId, IndexType indexType,
-            PTableStats stats, int baseColumnCount, boolean rowKeyOrderOptimizable, boolean
isTransactional, long updateCacheFrequency, long indexDisableTimestamp, boolean isNamespaceMapped,
String autoPartitionSeqName) throws SQLException {
+            PTableStats stats, int baseColumnCount, boolean rowKeyOrderOptimizable, boolean
isTransactional, long updateCacheFrequency, 
+            long indexDisableTimestamp, boolean isNamespaceMapped, String autoPartitionSeqName,
boolean isAppendOnlySchema) throws SQLException {
         init(tenantId, schemaName, tableName, type, state, timeStamp, sequenceNumber, pkName,
bucketNum, columns,
                 stats, schemaName, parentTableName, indexes, isImmutableRows, physicalNames,
defaultFamilyName,
                 viewExpression, disableWAL, multiTenant, storeNulls, viewType, viewIndexId,
indexType, baseColumnCount, rowKeyOrderOptimizable,
-                isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMapped,
autoPartitionSeqName);
+                isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMapped,
autoPartitionSeqName, isAppendOnlySchema);
     }
     
     @Override
@@ -368,7 +380,8 @@ public class PTableImpl implements PTable {
             PName pkName, Integer bucketNum, List<PColumn> columns, PTableStats stats,
PName parentSchemaName, PName parentTableName,
             List<PTable> indexes, boolean isImmutableRows, List<PName> physicalNames,
PName defaultFamilyName, String viewExpression, boolean disableWAL,
             boolean multiTenant, boolean storeNulls, ViewType viewType, Short viewIndexId,
-            IndexType indexType , int baseColumnCount, boolean rowKeyOrderOptimizable, boolean
isTransactional, long updateCacheFrequency, long indexDisableTimestamp, boolean isNamespaceMapped,
String autoPartitionSeqName) throws SQLException {
+            IndexType indexType , int baseColumnCount, boolean rowKeyOrderOptimizable, boolean
isTransactional, long updateCacheFrequency, long indexDisableTimestamp, 
+            boolean isNamespaceMapped, String autoPartitionSeqName, boolean isAppendOnlySchema)
throws SQLException {
         Preconditions.checkNotNull(schemaName);
         Preconditions.checkArgument(tenantId==null || tenantId.getBytes().length > 0);
// tenantId should be null or not empty
         int estimatedSize = SizedUtil.OBJECT_SIZE * 2 + 23 * SizedUtil.POINTER_SIZE + 4 *
SizedUtil.INT_SIZE + 2 * SizedUtil.LONG_SIZE + 2 * SizedUtil.INT_OBJECT_SIZE +
@@ -404,6 +417,7 @@ public class PTableImpl implements PTable {
         this.updateCacheFrequency = updateCacheFrequency;
         this.isNamespaceMapped = isNamespaceMapped;
         this.autoPartitionSeqName = autoPartitionSeqName;
+        this.isAppendOnlySchema = isAppendOnlySchema;
         List<PColumn> pkColumns;
         PColumn[] allColumns;
         
@@ -1110,6 +1124,10 @@ public class PTableImpl implements PTable {
       if (table.hasAutoParititonSeqName()) {
           autoParititonSeqName = table.getAutoParititonSeqName();
       }
+      boolean isAppendOnlySchema = false;
+      if (table.hasIsAppendOnlySchema()) {
+          isAppendOnlySchema = table.getIsAppendOnlySchema();
+      }
       
       try {
         PTableImpl result = new PTableImpl();
@@ -1117,7 +1135,7 @@ public class PTableImpl implements PTable {
             (bucketNum == NO_SALTING) ? null : bucketNum, columns, stats, schemaName,dataTableName,
indexes,
             isImmutableRows, physicalNames, defaultFamilyName, viewStatement, disableWAL,
             multiTenant, storeNulls, viewType, viewIndexId, indexType, baseColumnCount, rowKeyOrderOptimizable,
-            isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMapped,
autoParititonSeqName);
+            isTransactional, updateCacheFrequency, indexDisableTimestamp, isNamespaceMapped,
autoParititonSeqName, isAppendOnlySchema);
         return result;
       } catch (SQLException e) {
         throw new RuntimeException(e); // Impossible
@@ -1212,6 +1230,7 @@ public class PTableImpl implements PTable {
       if (table.getAutoPartitionSeqName()!= null) {
           builder.setAutoParititonSeqName(table.getAutoPartitionSeqName());
       }
+      builder.setIsAppendOnlySchema(table.isAppendOnlySchema());
       return builder.build();
     }
 
@@ -1255,7 +1274,13 @@ public class PTableImpl implements PTable {
         return isNamespaceMapped;
     }
     
+    @Override
     public String getAutoPartitionSeqName() {
         return autoPartitionSeqName;
     }
+    
+    @Override
+    public boolean isAppendOnlySchema() {
+        return isAppendOnlySchema;
+    }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java
index abfc8a5..7e521e6 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java
@@ -69,9 +69,10 @@ public enum TableProperty {
 	},
 	
 	AUTO_PARTITION_SEQ(PhoenixDatabaseMetaData.AUTO_PARTITION_SEQ, COLUMN_FAMILY_NOT_ALLOWED_TABLE_PROPERTY,
false, false),
+	
+	APPEND_ONLY_SCHEMA(PhoenixDatabaseMetaData.APPEND_ONLY_SCHEMA, COLUMN_FAMILY_NOT_ALLOWED_TABLE_PROPERTY,
true, true),
     ;
 
-
 	private final String propertyName;
 	private final SQLExceptionCode colFamSpecifiedException;
 	private final boolean isMutable; // whether or not a property can be changed through statements
like ALTER TABLE.

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
index 52c5c71..995f44b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
@@ -36,6 +36,7 @@ import java.util.Set;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.HTableDescriptor;
@@ -69,6 +70,7 @@ import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.schema.SequenceKey;
 import org.apache.phoenix.schema.SortOrder;
 import org.apache.phoenix.schema.TableNotFoundException;
+import org.apache.phoenix.schema.TableProperty;
 import org.apache.phoenix.schema.types.PBoolean;
 import org.apache.phoenix.schema.types.PDataType;
 import org.apache.phoenix.schema.types.PLong;
@@ -533,7 +535,7 @@ public class MetaDataUtil {
     }
 
     public static String getAutoPartitionColumnName(PTable parentTable) {
-        List<PColumn> parentTableColumns = parentTable.getColumns();
+        List<PColumn> parentTableColumns = parentTable.getPKColumns();
         PColumn column = parentTableColumns.get(getAutoPartitionColIndex(parentTable));
         return column.getName().getString();
     }
@@ -555,4 +557,12 @@ public class MetaDataUtil {
             + PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR + zkClientPort
             + PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR + zkParentNode;
     }
+
+    public static boolean isHColumnProperty(String propName) {
+        return HColumnDescriptor.getDefaultValues().containsKey(propName);
+    }
+
+    public static boolean isHTableProperty(String propName) {
+        return !isHColumnProperty(propName) && !TableProperty.isPhoenixTableProperty(propName);
+    }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
b/phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
index aaf158a..62aafa5 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
@@ -256,7 +256,7 @@ public class CorrelatePlanTest {
                     PTableType.SUBQUERY, null, MetaDataProtocol.MIN_TABLE_TIMESTAMP, PTable.INITIAL_SEQ_NUM,
                     null, null, columns, null, null, Collections.<PTable>emptyList(),
                     false, Collections.<PName>emptyList(), null, null, false, false,
false, null,
-                    null, null, true, false, 0, 0L, Boolean.FALSE, null);
+                    null, null, true, false, 0, 0L, Boolean.FALSE, null, false);
             TableRef sourceTable = new TableRef(pTable);
             List<ColumnRef> sourceColumnRefs = Lists.<ColumnRef> newArrayList();
             for (PColumn column : sourceTable.getTable().getColumns()) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
b/phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
index 04ed6b4..1b16d40 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
@@ -177,7 +177,7 @@ public class LiteralResultIteratorPlanTest {
             PTable pTable = PTableImpl.makePTable(null, PName.EMPTY_NAME, PName.EMPTY_NAME,
PTableType.SUBQUERY, null,
                     MetaDataProtocol.MIN_TABLE_TIMESTAMP, PTable.INITIAL_SEQ_NUM, null, null,
columns, null, null,
                     Collections.<PTable> emptyList(), false, Collections.<PName>
emptyList(), null, null, false, false,
-                    false, null, null, null, true, false, 0, 0L, false, null);
+                    false, null, null, null, true, false, 0, 0L, false, null, false);
             TableRef sourceTable = new TableRef(pTable);
             List<ColumnRef> sourceColumnRefs = Lists.<ColumnRef> newArrayList();
             for (PColumn column : sourceTable.getTable().getColumns()) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0047e5d4/phoenix-protocol/src/main/PTable.proto
----------------------------------------------------------------------
diff --git a/phoenix-protocol/src/main/PTable.proto b/phoenix-protocol/src/main/PTable.proto
index 9521fba..2696430 100644
--- a/phoenix-protocol/src/main/PTable.proto
+++ b/phoenix-protocol/src/main/PTable.proto
@@ -92,4 +92,5 @@ message PTable {
   optional int64 indexDisableTimestamp = 29;
   optional bool isNamespaceMapped = 30;
   optional string autoParititonSeqName = 31;
+  optional bool isAppendOnlySchema = 32;
 }


Mime
View raw message