You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2016/09/29 00:15:46 UTC

phoenix git commit: Use key value column expression for storing indexed columns in IndexMaintainer

Repository: phoenix
Updated Branches:
  refs/heads/encodecolumns aaecd5a4d -> fcafb67d2


Use key value column expression for storing indexed columns in IndexMaintainer


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

Branch: refs/heads/encodecolumns
Commit: fcafb67d29a94a50b8b088bc46e5d15953f64855
Parents: aaecd5a
Author: Samarth <sa...@salesforce.com>
Authored: Wed Sep 28 17:15:36 2016 -0700
Committer: Samarth <sa...@salesforce.com>
Committed: Wed Sep 28 17:15:36 2016 -0700

----------------------------------------------------------------------
 .../org/apache/phoenix/expression/ArrayColumnExpression.java   | 2 +-
 .../main/java/org/apache/phoenix/index/IndexMaintainer.java    | 6 ++----
 .../src/main/java/org/apache/phoenix/query/QueryConstants.java | 3 +++
 .../src/main/java/org/apache/phoenix/schema/PTableImpl.java    | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/fcafb67d/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayColumnExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayColumnExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayColumnExpression.java
index 7310e59..9690809 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayColumnExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayColumnExpression.java
@@ -62,7 +62,7 @@ public class ArrayColumnExpression extends ColumnExpression {
         this.index = column.getEncodedColumnQualifier() + 1;
         byte[] cf = column.getFamilyName().getBytes();
         byte[] cq = EncodedColumnsUtil.getEncodedColumnQualifier(column);
-        this.arrayExpression = new KeyValueColumnExpression(column, cf, cq);
+        this.arrayExpression = new KeyValueColumnExpression(column, cf, cf);
         this.origKVExpression = new KeyValueColumnExpression(column, displayName, encodedColumnName);
         this.displayName = displayName;
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/fcafb67d/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java b/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
index a3f2a1b..20a0713 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
@@ -76,7 +76,6 @@ import org.apache.phoenix.schema.PColumn;
 import org.apache.phoenix.schema.PColumnFamily;
 import org.apache.phoenix.schema.PDatum;
 import org.apache.phoenix.schema.PIndexState;
-import org.apache.phoenix.schema.PName;
 import org.apache.phoenix.schema.PTable;
 import org.apache.phoenix.schema.PTable.IndexType;
 import org.apache.phoenix.schema.PTable.StorageScheme;
@@ -99,6 +98,7 @@ import org.apache.phoenix.util.IndexUtil;
 import org.apache.phoenix.util.MetaDataUtil;
 import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.TrustedByteArrayOutputStream;
+import org.apache.tephra.TxConstants;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterators;
@@ -106,8 +106,6 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 
-import org.apache.tephra.TxConstants;
-
 /**
  * 
  * Class that builds index row key from data row key and current state of
@@ -1329,7 +1327,7 @@ public class IndexMaintainer implements Writable, Iterable<ColumnReference> {
                 }
                 @Override
                 public Void visit(ArrayColumnExpression expression) {
-					KeyValueColumnExpression colExpression = expression.getArrayExpression();
+					KeyValueColumnExpression colExpression = expression.getKeyValueExpression();
 					if (indexedColumns.add(new ColumnReference(colExpression.getColumnFamily(), colExpression.getColumnQualifier()))) {
                 		indexedColumnTypes.add(colExpression.getDataType());
                 	}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/fcafb67d/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java
index b1733f0..dfc8908 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java
@@ -383,5 +383,8 @@ public interface QueryConstants {
     public static final byte[] OFFSET_FAMILY = "f_offset".getBytes();
     public static final byte[] OFFSET_COLUMN = "c_offset".getBytes();
     public static final String LAST_SCAN = "LAST_SCAN";
+    //TODO: samarth we may or may not have to tweak this constant for short/long/int column qualifer schemes.
+    //Qualifier used for the cell that stores various column values using the storage scheme StorageScheme#COLUMNS_STORED_IN_SINGLE_CELL
+    //public static final ImmutableBytesPtr SINGLE_CELL_COLUMN_QUALIFIER = new ImmutableBytesPtr(PInteger.INSTANCE.toBytes(ENCODED_CQ_COUNTER_INITIAL_VALUE)); 
 
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/fcafb67d/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 ed26f17..70927a0 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
@@ -842,7 +842,7 @@ public class PTableImpl implements PTable {
                         for (PColumn column : columns) {
                             maxEncodedColumnQualifier = Math.max(maxEncodedColumnQualifier, column.getEncodedColumnQualifier());
                         }
-                        byte[][] colValues = new byte[maxEncodedColumnQualifier+1][];
+                        byte[][] colValues = new byte[maxEncodedColumnQualifier+1][]; //TODO: samarth probably use the min_qualifier as an offset here.
                         for (PColumn column : columns) {
                             colValues[column.getEncodedColumnQualifier()] = columnToValueMap.get(column);
                         }