Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 44d1e28a4 -> 273dd49e1


PHOENIX-2987 DISTINCT/GROUP BY optimization not correct for null values in key 
parts.


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 273dd49e17c59b12cc2642a2041623b555c06461
Parents: 44d1e28
Author: Lars Hofhansl <la...@apache.org>
Authored: Sat Jun 11 17:47:10 2016 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Sat Jun 11 17:47:38 2016 -0700

----------------------------------------------------------------------
 .../org/apache/phoenix/filter/DistinctPrefixFilter.java |  4 +---
 .../apache/phoenix/filter/DistinctPrefixFilterTest.java | 12 ++++++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/273dd49e/phoenix-core/src/main/java/org/apache/phoenix/filter/DistinctPrefixFilter.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/filter/DistinctPrefixFilter.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/filter/DistinctPrefixFilter.java
index 893e068..1a1f497 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/filter/DistinctPrefixFilter.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/filter/DistinctPrefixFilter.java
@@ -14,9 +14,7 @@ import org.apache.hadoop.hbase.util.Writables;
 import org.apache.hadoop.io.Writable;
 import org.apache.phoenix.schema.RowKeySchema;
 import org.apache.phoenix.schema.types.PDataType;
-import org.apache.phoenix.schema.types.PVarbinary;
 import org.apache.phoenix.util.ByteUtil;
-import org.apache.phoenix.util.ScanUtil;
 
 public class DistinctPrefixFilter extends FilterBase implements Writable {
     private static byte VERSION = 1;
@@ -24,7 +22,7 @@ public class DistinctPrefixFilter extends FilterBase 
implements Writable {
     private RowKeySchema schema;
     private int prefixLengh;
     private boolean filterAll = false;
-    private final ImmutableBytesWritable lastKey = new 
ImmutableBytesWritable(ByteUtil.EMPTY_BYTE_ARRAY);
+    private final ImmutableBytesWritable lastKey = new 
ImmutableBytesWritable(ByteUtil.EMPTY_BYTE_ARRAY, -1, -1);
 
     public DistinctPrefixFilter() {
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/273dd49e/phoenix-core/src/test/java/org/apache/phoenix/filter/DistinctPrefixFilterTest.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/filter/DistinctPrefixFilterTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/filter/DistinctPrefixFilterTest.java
index c32877f..0fe4acf 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/filter/DistinctPrefixFilterTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/filter/DistinctPrefixFilterTest.java
@@ -155,6 +155,18 @@ public class DistinctPrefixFilterTest extends TestCase {
         assertSeekAndHint("00005", f, "00005\01");
     }
 
+    public void testVariableWithNull() throws Exception {
+        Filter f = createFilter(new int[]{-2,-2}, 1);
+        assertInclude("\00aa", f);
+        assertSeekAndHint("\00aa", f, "\01");
+        assertSeekAndHint("\00aa", f, "\01");
+
+        f = createFilter(new int[]{-2,-2}, 2);
+        assertInclude("\00\00", f);
+        assertSeekAndHint("\00\00", f, "\00\00\01");
+        assertSeekAndHint("\00\00", f, "\00\00\01");
+    }
+
     public void testMultiVariableWidth() throws Exception {
         Filter f = createFilter(new int[]{-5,-4}, 1);
         assertInclude("00000\00aaaa", f);

Reply via email to