You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by vi...@apache.org on 2017/12/27 23:50:16 UTC

phoenix git commit: HOENIX-4382 Immutable table SINGLE_CELL_ARRAY_WITH_OFFSETS values starting with separator byte return null in query results (amendment adding comments)

Repository: phoenix
Updated Branches:
  refs/heads/4.x-cdh5.11.2 e9dc8ad9b -> bd554b437


HOENIX-4382 Immutable table SINGLE_CELL_ARRAY_WITH_OFFSETS values starting with separator byte return null in query results
(amendment adding comments)


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

Branch: refs/heads/4.x-cdh5.11.2
Commit: bd554b4374ba5bf875f16051c3d2bfc1005a9e4b
Parents: e9dc8ad
Author: Vincent Poon <vi...@apache.org>
Authored: Wed Dec 27 15:49:57 2017 -0800
Committer: Vincent Poon <vi...@apache.org>
Committed: Wed Dec 27 15:49:57 2017 -0800

----------------------------------------------------------------------
 .../org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java   | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd554b43/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java
index c303db1..22fa46c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java
@@ -132,6 +132,7 @@ public class PArrayDataTypeDecoder implements ColumnValueDecoder {
         return true;
     }
 
+    // returns true if the prior element in the array is a null
     private static boolean isNullValue(int arrayIndex, byte[] bytes, int initPos,
             byte serializationVersion, boolean useShort, int indexOffset, int currOffset,
             int elementLength) {
@@ -142,6 +143,8 @@ public class PArrayDataTypeDecoder implements ColumnValueDecoder {
             } else {
                 // if there's no prior null, there can be at most 1 null
                 if (elementLength == 2) {
+                    // nullByte calculation comes from the encoding of one null
+                    // see PArrayDataType#serializeNulls
                     byte nullByte = SortOrder.invert((byte)(0));
                     if (bytes[initPos+currOffset+1] == nullByte) {
                         return true;
@@ -152,6 +155,7 @@ public class PArrayDataTypeDecoder implements ColumnValueDecoder {
         return false;
     }
 
+    // checks prior value length by subtracting offset of the previous item from the current offset
     private static boolean isPriorValueZeroLength(int arrayIndex, byte[] bytes, byte serializationVersion,
             boolean useShort, int indexOffset, int currOffset) {
         return arrayIndex > 0 && currOffset - PArrayDataType.getOffset(bytes, arrayIndex - 1,