This is an automated email from the ASF dual-hosted git repository. larsh pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/master by this push: new d43bc67 PHOENIX-5303 Fix index failures with some versions of HBase. d43bc67 is described below commit d43bc67dea852b3c9d7c419680d3a1edf8d870c7 Author: Lars Hofhansl <la...@apache.org> AuthorDate: Tue May 28 10:44:40 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 4c42fe4..988528f 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); }