You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by la...@apache.org on 2019/05/28 17:47:05 UTC
[phoenix] branch 4.x-HBase-1.5 updated: PHOENIX-5303 Fix index
failures with some versions of HBase.
This is an automated email from the ASF dual-hosted git repository.
larsh pushed a commit to branch 4.x-HBase-1.5
in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/4.x-HBase-1.5 by this push:
new 0fe00fd PHOENIX-5303 Fix index failures with some versions of HBase.
0fe00fd is described below
commit 0fe00fd08b7e3d93c6696c2b85221682669bbbc6
Author: Lars Hofhansl <la...@apache.org>
AuthorDate: Tue May 28 10:46:52 2019 -0700
PHOENIX-5303 Fix index failures with some versions of HBase.
---
.../org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java
index 703fcd2..318517c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/scanner/ScannerBuilder.java
@@ -24,6 +24,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.KeyValueUtil;
import org.apache.hadoop.hbase.client.Mutation;
@@ -33,6 +34,7 @@ import org.apache.hadoop.hbase.filter.FamilyFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterBase;
import org.apache.hadoop.hbase.filter.FilterList;
+import org.apache.hadoop.hbase.filter.FilterList.Operator;
import org.apache.hadoop.hbase.filter.QualifierFilter;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.hbase.index.covered.KeyValueStore;
@@ -92,10 +94,13 @@ public class ScannerBuilder {
Filter columnFilter =
new FamilyFilter(CompareOp.EQUAL, new BinaryComparator(ref.getFamily()));
// combine with a match for the qualifier, if the qualifier is a specific qualifier
+ // in that case we *must* let empty qualifiers through for family delete markers
if (!Bytes.equals(ColumnReference.ALL_QUALIFIERS, ref.getQualifier())) {
columnFilter =
- new FilterList(columnFilter, new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(
- ref.getQualifier())));
+ new FilterList(columnFilter,
+ new FilterList(Operator.MUST_PASS_ONE,
+ new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(ref.getQualifier())),
+ new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(HConstants.EMPTY_BYTE_ARRAY))));
}
columnFilters.addFilter(columnFilter);
}