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:44:50 UTC
[phoenix] branch master 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 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);
}