You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by re...@apache.org on 2018/08/23 16:23:45 UTC
hbase git commit: HBASE-19008 Add missing equals or hashCode
method(s) to stock Filter implementations
Repository: hbase
Updated Branches:
refs/heads/master 6a5b4f2a5 -> 72b36e1d9
HBASE-19008 Add missing equals or hashCode method(s) to stock Filter implementations
Signed-off-by: Reid Chan <re...@apache.org>
Signed-off-by: Ted Yu <yu...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/72b36e1d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/72b36e1d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/72b36e1d
Branch: refs/heads/master
Commit: 72b36e1d9aa6b10508b6d87a02fbf7d4ead2d2a2
Parents: 6a5b4f2
Author: liubangchen <li...@tencent.com>
Authored: Thu Aug 23 11:19:17 2018 +0800
Committer: Reid Chan <re...@apache.org>
Committed: Fri Aug 24 00:22:22 2018 +0800
----------------------------------------------------------------------
.../hbase/filter/ColumnCountGetFilter.java | 15 ++++++
.../hbase/filter/ColumnPaginationFilter.java | 15 ++++++
.../hadoop/hbase/filter/ColumnPrefixFilter.java | 15 ++++++
.../hadoop/hbase/filter/ColumnRangeFilter.java | 16 ++++++
.../hadoop/hbase/filter/ColumnValueFilter.java | 16 ++++++
.../hadoop/hbase/filter/CompareFilter.java | 15 ++++++
.../hbase/filter/DependentColumnFilter.java | 16 ++++++
.../hadoop/hbase/filter/FamilyFilter.java | 15 ++++++
.../apache/hadoop/hbase/filter/FilterList.java | 14 ++++++
.../hadoop/hbase/filter/FilterListWithAND.java | 19 +++++++
.../hadoop/hbase/filter/FilterListWithOR.java | 23 +++++++++
.../FirstKeyValueMatchingQualifiersFilter.java | 15 ++++++
.../hadoop/hbase/filter/FuzzyRowFilter.java | 15 ++++++
.../hbase/filter/InclusiveStopFilter.java | 15 ++++++
.../hadoop/hbase/filter/KeyOnlyFilter.java | 16 ++++++
.../hbase/filter/MultiRowRangeFilter.java | 38 ++++++++++++++
.../filter/MultipleColumnPrefixFilter.java | 16 ++++++
.../apache/hadoop/hbase/filter/PageFilter.java | 15 ++++++
.../hadoop/hbase/filter/PrefixFilter.java | 15 ++++++
.../hadoop/hbase/filter/QualifierFilter.java | 15 ++++++
.../hadoop/hbase/filter/RandomRowFilter.java | 15 ++++++
.../apache/hadoop/hbase/filter/RowFilter.java | 15 ++++++
.../hbase/filter/SingleColumnValueFilter.java | 16 ++++++
.../apache/hadoop/hbase/filter/SkipFilter.java | 15 ++++++
.../hadoop/hbase/filter/TimestampsFilter.java | 15 ++++++
.../apache/hadoop/hbase/filter/ValueFilter.java | 15 ++++++
.../hadoop/hbase/filter/WhileMatchFilter.java | 15 ++++++
.../security/access/AccessControlFilter.java | 23 +++++++++
.../visibility/VisibilityController.java | 17 +++++++
.../visibility/VisibilityLabelFilter.java | 18 +++++++
.../hbase/client/ColumnCountOnRowFilter.java | 18 +++++++
.../apache/hadoop/hbase/filter/TestFilter.java | 1 +
.../hadoop/hbase/filter/TestFilterList.java | 53 ++++++++++++++++++++
.../hbase/spark/SparkSQLPushDownFilter.java | 32 ++++++++++++
34 files changed, 607 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
index 3aaac36..3cf6675 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.yetus.audience.InterfaceAudience;
@@ -132,4 +133,18 @@ public class ColumnCountGetFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + this.limit;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ColumnCountGetFilter))) {
+ return false;
+ }
+ ColumnCountGetFilter f = (ColumnCountGetFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.limit);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java
index c90047d..4f592e9 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
@@ -230,4 +231,18 @@ public class ColumnPaginationFilter extends FilterBase {
return String.format("%s (%d, %d)", this.getClass().getSimpleName(),
this.limit, this.offset);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ColumnPaginationFilter))) {
+ return false;
+ }
+ ColumnPaginationFilter f = (ColumnPaginationFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.limit, this.offset);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
index a403a40..322cce1 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.ByteBufferExtendedCell;
import org.apache.hadoop.hbase.Cell;
@@ -161,4 +162,18 @@ public class ColumnPrefixFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + Bytes.toStringBinary(this.prefix);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ColumnPrefixFilter))) {
+ return false;
+ }
+ ColumnPrefixFilter f = (ColumnPrefixFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.getPrefix()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java
index f981ed7..5b30785 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnRangeFilter.java
@@ -23,6 +23,7 @@ import static org.apache.hadoop.hbase.util.Bytes.len;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
@@ -239,4 +240,19 @@ public class ColumnRangeFilter extends FilterBase {
+ ", " + Bytes.toStringBinary(this.maxColumn)
+ (this.maxColumnInclusive ? "]" : ")");
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ColumnRangeFilter))) {
+ return false;
+ }
+ ColumnRangeFilter f = (ColumnRangeFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.toStringBinary(this.getMinColumn()), this.getMinColumnInclusive(),
+ Bytes.toStringBinary(this.getMaxColumn()), this.getMaxColumnInclusive());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java
index 0795165..c33d50e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
@@ -238,4 +239,19 @@ public class ColumnValueFilter extends FilterBase {
Bytes.toStringBinary(this.qualifier), this.op.name(),
Bytes.toStringBinary(this.comparator.getValue()));
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ColumnValueFilter))) {
+ return false;
+ }
+ ColumnValueFilter f = (ColumnValueFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.getFamily()), Bytes.hashCode(this.getQualifier()),
+ this.getCompareOperator(), this.getComparator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java
index 50924ec..73c60fd 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/CompareFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
@@ -321,4 +322,18 @@ public abstract class CompareFilter extends FilterBase {
this.op.name(),
Bytes.toStringBinary(this.comparator.getValue()));
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof CompareFilter))) {
+ return false;
+ }
+ CompareFilter f = (CompareFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getComparator(), this.getCompareOperator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java
index 8f5dee7..f5912e1 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/DependentColumnFilter.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import org.apache.hadoop.hbase.Cell;
@@ -311,4 +312,19 @@ public class DependentColumnFilter extends CompareFilter {
this.op.name(),
this.comparator != null ? Bytes.toStringBinary(this.comparator.getValue()) : "null");
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof DependentColumnFilter))) {
+ return false;
+ }
+ DependentColumnFilter f = (DependentColumnFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.getFamily()), Bytes.hashCode(this.getQualifier()),
+ this.dropDependentColumn());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FamilyFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FamilyFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FamilyFilter.java
index f114e98..5892c32 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FamilyFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FamilyFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
@@ -146,4 +147,18 @@ public class FamilyFilter extends CompareFilter {
FamilyFilter other = (FamilyFilter)o;
return super.areSerializedFieldsEqual(other);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FamilyFilter))) {
+ return false;
+ }
+ FamilyFilter f = (FamilyFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getComparator(), this.getCompareOperator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
index c549eab..f8be2f6 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.yetus.audience.InterfaceAudience;
@@ -276,4 +277,17 @@ final public class FilterList extends FilterBase {
public String toString() {
return this.filterListBase.toString();
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FilterList))) {
+ return false;
+ }
+ FilterList f = (FilterList) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getOperator(), Arrays.hashCode(this.getFilters().toArray()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java
index ebff3a5..65b641b 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithAND.java
@@ -24,8 +24,10 @@ import org.apache.yetus.audience.InterfaceAudience;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
/**
* FilterListWithAND represents an ordered list of filters which will be evaluated with an AND
@@ -279,4 +281,21 @@ public class FilterListWithAND extends FilterListBase {
}
return maxHint;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FilterListWithAND))) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ FilterListWithAND f = (FilterListWithAND) obj;
+ return this.filters.equals(f.getFilters()) && this.seekHintFilters.equals(f.seekHintFilters);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.seekHintFilters, Arrays.hashCode(this.filters.toArray()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java
index 064dd83..a51daa7 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterListWithOR.java
@@ -26,8 +26,10 @@ import org.apache.yetus.audience.InterfaceAudience;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
/**
* FilterListWithOR represents an ordered list of filters which will be evaluated with an OR
@@ -391,4 +393,25 @@ public class FilterListWithOR extends FilterListBase {
}
return minKeyHint;
}
+
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FilterListWithOR))) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ FilterListWithOR f = (FilterListWithOR) obj;
+ return this.filters.equals(f.getFilters()) &&
+ this.prevFilterRCList.equals(f.prevFilterRCList) &&
+ this.prevCellList.equals(f.prevCellList);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Arrays.hashCode(this.prevFilterRCList.toArray()),
+ Arrays.hashCode(this.prevCellList.toArray()), Arrays.hashCode(this.filters.toArray()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
index 88dc36a..4775643 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.filter;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
@@ -133,4 +134,18 @@ public class FirstKeyValueMatchingQualifiersFilter extends FirstKeyOnlyFilter {
FirstKeyValueMatchingQualifiersFilter other = (FirstKeyValueMatchingQualifiersFilter)o;
return this.qualifiers.equals(other.qualifiers);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FirstKeyValueMatchingQualifiersFilter))) {
+ return false;
+ }
+ FirstKeyValueMatchingQualifiersFilter f = (FirstKeyValueMatchingQualifiersFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.qualifiers);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
index 714c550..0db070e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
import java.util.PriorityQueue;
import org.apache.hadoop.hbase.Cell;
@@ -646,4 +647,18 @@ public class FuzzyRowFilter extends FilterBase {
}
return true;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof FuzzyRowFilter))) {
+ return false;
+ }
+ FuzzyRowFilter f = (FuzzyRowFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.fuzzyKeysData.toArray());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
index 3756499..0e1749a 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
@@ -20,6 +20,7 @@
package org.apache.hadoop.hbase.filter;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellComparator;
@@ -131,4 +132,18 @@ public class InclusiveStopFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + Bytes.toStringBinary(this.stopRowKey);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof InclusiveStopFilter))) {
+ return false;
+ }
+ InclusiveStopFilter f = (InclusiveStopFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.stopRowKey));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
index a66441b..cb74f8e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
@@ -23,7 +23,9 @@ import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
+import java.util.Objects;
import java.util.Optional;
+
import org.apache.hadoop.hbase.ByteBufferExtendedCell;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HConstants;
@@ -133,6 +135,20 @@ public class KeyOnlyFilter extends FilterBase {
return this.lenAsVal == other.lenAsVal;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof KeyOnlyFilter))) {
+ return false;
+ }
+ KeyOnlyFilter f = (KeyOnlyFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.lenAsVal);
+ }
+
static class KeyOnlyCell implements Cell {
private Cell cell;
private boolean lenAsVal;
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
index dfd6297..00753ae 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.filter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
@@ -512,5 +513,42 @@ public class MultiRowRangeFilter extends FilterBase {
|| Bytes.compareTo(startRow, stopRow) < 0
|| (Bytes.compareTo(startRow, stopRow) == 0 && stopRowInclusive == true);
}
+
+ @Override
+ public boolean equals(Object obj){
+ if (obj == null || (!(obj instanceof RowRange))) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ RowRange rr = (RowRange) obj;
+ return Bytes.equals(this.stopRow, rr.getStopRow()) &&
+ Bytes.equals(this.startRow, this.getStartRow()) &&
+ this.startRowInclusive == rr.isStartRowInclusive() &&
+ this.stopRowInclusive == rr.isStopRowInclusive();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.stopRow),
+ Bytes.hashCode(this.startRow),
+ this.startRowInclusive,
+ this.stopRowInclusive);
+ }
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof MultiRowRangeFilter))) {
+ return false;
+ }
+ MultiRowRangeFilter f = (MultiRowRangeFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.rangeList.toArray());
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java
index 47feea7..ec69ae2 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java
@@ -19,7 +19,9 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Comparator;
+import java.util.Objects;
import java.util.TreeSet;
import org.apache.hadoop.hbase.Cell;
@@ -207,4 +209,18 @@ public class MultipleColumnPrefixFilter extends FilterBase {
return String.format("%s (%d/%d): [%s]", this.getClass().getSimpleName(),
count, this.sortedPrefixes.size(), prefixes.toString());
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof MultipleColumnPrefixFilter))) {
+ return false;
+ }
+ MultipleColumnPrefixFilter f = (MultipleColumnPrefixFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Arrays.hashCode(this.sortedPrefixes.toArray()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
index 30ddf24..06f777d 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
@@ -150,4 +151,18 @@ public class PageFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + this.pageSize;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof PageFilter))) {
+ return false;
+ }
+ PageFilter f = (PageFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.pageSize);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
index df9177b..e243933 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
@@ -20,6 +20,7 @@
package org.apache.hadoop.hbase.filter;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.ByteBufferExtendedCell;
import org.apache.hadoop.hbase.Cell;
@@ -156,4 +157,18 @@ public class PrefixFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + Bytes.toStringBinary(this.prefix);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof PrefixFilter))) {
+ return false;
+ }
+ PrefixFilter f = (PrefixFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.getPrefix()));
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/QualifierFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/QualifierFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/QualifierFilter.java
index b38c010..da822ec 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/QualifierFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/QualifierFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
@@ -143,4 +144,18 @@ public class QualifierFilter extends CompareFilter {
return super.areSerializedFieldsEqual(o);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof QualifierFilter))) {
+ return false;
+ }
+ QualifierFilter f = (QualifierFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getComparator(), this.getCompareOperator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java
index 58624d2..2fca487 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RandomRowFilter.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.hbase.filter;
+import java.util.Objects;
import java.util.Random;
import org.apache.hadoop.hbase.Cell;
@@ -154,4 +155,18 @@ public class RandomRowFilter extends FilterBase {
RandomRowFilter other = (RandomRowFilter)o;
return this.getChance() == other.getChance();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof RandomRowFilter))) {
+ return false;
+ }
+ RandomRowFilter f = (RandomRowFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getChance());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java
index 8eba3ba..e106a56 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RowFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
@@ -160,4 +161,18 @@ public class RowFilter extends CompareFilter {
return super.areSerializedFieldsEqual(o);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof RowFilter))) {
+ return false;
+ }
+ RowFilter f = (RowFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getComparator(), this.getCompareOperator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java
index e5c83b1..45cc965 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
@@ -460,4 +461,19 @@ public class SingleColumnValueFilter extends FilterBase {
Bytes.toStringBinary(this.columnQualifier), this.op.name(),
Bytes.toStringBinary(this.comparator.getValue()));
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(SingleColumnValueFilter.class.isInstance(obj)))) {
+ return false;
+ }
+ SingleColumnValueFilter f = (SingleColumnValueFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Bytes.hashCode(this.getFamily()), Bytes.hashCode(this.getQualifier()),
+ this.op, this.getComparator(), this.getFilterIfMissing(), this.getLatestVersionOnly());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java
index c710548..2db6aba 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SkipFilter.java
@@ -20,6 +20,7 @@
package org.apache.hadoop.hbase.filter;
import java.io.IOException;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.yetus.audience.InterfaceAudience;
@@ -161,4 +162,18 @@ public class SkipFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + this.filter.toString();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ SkipFilter f = (SkipFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.filter);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
index b3a8eae..cc749a5 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.TreeSet;
import org.apache.hadoop.hbase.Cell;
@@ -238,4 +239,18 @@ public class TimestampsFilter extends FilterBase {
return String.format("%s (%d/%d): [%s] canHint: [%b]", this.getClass().getSimpleName(),
count, this.timestamps.size(), tsList.toString(), canHint);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof TimestampsFilter))) {
+ return false;
+ }
+ TimestampsFilter f = (TimestampsFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getTimestamps().toArray());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java
index 3faa111..59c2794 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ValueFilter.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.filter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
@@ -139,4 +140,18 @@ public class ValueFilter extends CompareFilter {
return super.areSerializedFieldsEqual(o);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof ValueFilter))) {
+ return false;
+ }
+ ValueFilter f = (ValueFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.getComparator(), this.getCompareOperator());
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
index 6c1a47f..d501dc4 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
@@ -20,6 +20,7 @@
package org.apache.hadoop.hbase.filter;
import java.io.IOException;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.yetus.audience.InterfaceAudience;
@@ -163,4 +164,18 @@ public class WhileMatchFilter extends FilterBase {
public String toString() {
return this.getClass().getSimpleName() + " " + this.filter.toString();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ WhileMatchFilter f = (WhileMatchFilter) obj;
+ return this.areSerializedFieldsEqual(f);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.filter);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlFilter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlFilter.java
index 24f750a..e7cf424 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlFilter.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlFilter.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.security.access;
import java.io.IOException;
import java.util.Map;
+import java.util.Objects;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hadoop.hbase.Cell;
@@ -173,4 +174,26 @@ class AccessControlFilter extends FilterBase {
throw new UnsupportedOperationException(
"Serialization not supported. Intended for server-side use only.");
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ if(this == obj){
+ return true;
+ }
+ AccessControlFilter f=(AccessControlFilter)obj;
+ return this.authManager.equals(f.authManager) &&
+ this.table.equals(f.table) &&
+ this.user.equals(f.user) &&
+ this.strategy.equals(f.strategy) &&
+ this.cfVsMaxVersions.equals(f.cfVsMaxVersions);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.authManager, this.table, this.strategy, this.user,
+ this.cfVsMaxVersions);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
index 4f00e7d..3f4b64a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
@@ -1038,6 +1038,23 @@ public class VisibilityController implements MasterCoprocessor, RegionCoprocesso
deleteCellVisTagsFormat);
return matchFound ? ReturnCode.INCLUDE : ReturnCode.SKIP;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ if(this == obj){
+ return true;
+ }
+ DeleteVersionVisibilityExpressionFilter f = (DeleteVersionVisibilityExpressionFilter)obj;
+ return this.deleteCellVisTags.equals(f.deleteCellVisTags) &&
+ this.deleteCellVisTagsFormat.equals(f.deleteCellVisTagsFormat);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.deleteCellVisTags, this.deleteCellVisTagsFormat);
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java
index 2bde9b5..590a2a4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.security.visibility;
import java.io.IOException;
import java.util.Map;
+import java.util.Objects;
import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hadoop.hbase.Cell;
@@ -90,4 +91,21 @@ class VisibilityLabelFilter extends FilterBase {
this.curFamilyMaxVersions = 0;
this.curQualMetVersions = 0;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ if(this == obj){
+ return true;
+ }
+ VisibilityLabelFilter f = (VisibilityLabelFilter)obj;
+ return this.expEvaluator.equals(f.expEvaluator) &&
+ this.cfVsMaxVersions.equals(f.cfVsMaxVersions);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.expEvaluator, this.cfVsMaxVersions);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/test/java/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java
index 5bede2a..5735a98 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.client;
import java.io.IOException;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.yetus.audience.InterfaceAudience;
@@ -55,4 +56,21 @@ public final class ColumnCountOnRowFilter extends FilterBase {
public static ColumnCountOnRowFilter parseFrom(byte[] bytes) throws DeserializationException {
return new ColumnCountOnRowFilter(Bytes.toInt(bytes));
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj.getClass() == this.getClass()))) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ ColumnCountOnRowFilter f = (ColumnCountOnRowFilter) obj;
+ return this.limit == f.limit;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.limit);
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java
index a3e3359..e6d73fb 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellComparator;
import org.apache.hadoop.hbase.CellUtil;
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
index 5f9515a..4d14cd4 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterList.java
@@ -27,6 +27,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Objects;
+
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellComparator;
import org.apache.hadoop.hbase.CompareOperator;
@@ -647,6 +649,23 @@ public class TestFilterList {
this.didCellPassToTheFilter = true;
return targetRetCode;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if(obj == null || !(obj instanceof MockFilter)){
+ return false;
+ }
+ if(obj == this){
+ return true;
+ }
+ MockFilter f = (MockFilter)obj;
+ return this.targetRetCode.equals(f.targetRetCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.targetRetCode);
+ }
}
@Test
@@ -819,6 +838,23 @@ public class TestFilterList {
public Cell getNextCellHint(Cell currentCell) throws IOException {
return this.returnCell;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if(obj == null || !(obj instanceof MockSeekHintFilter)){
+ return false;
+ }
+ if(obj == this){
+ return true;
+ }
+ MockSeekHintFilter f = (MockSeekHintFilter)obj;
+ return this.returnCell.equals(f.returnCell);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.returnCell);
+ }
}
@Test
@@ -988,6 +1024,23 @@ public class TestFilterList {
public boolean getTransformed() {
return this.transformed;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if(obj == null || !(obj instanceof TransformFilter)){
+ return false;
+ }
+ if(obj == this){
+ return true;
+ }
+ TransformFilter f = (TransformFilter)obj;
+ return this.targetRetCode.equals(f.targetRetCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.targetRetCode);
+ }
}
@Test
http://git-wip-us.apache.org/repos/asf/hbase/blob/72b36e1d/hbase-spark/src/main/java/org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java
----------------------------------------------------------------------
diff --git a/hbase-spark/src/main/java/org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java b/hbase-spark/src/main/java/org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java
index 694fb6a..bcfecac 100644
--- a/hbase-spark/src/main/java/org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java
+++ b/hbase-spark/src/main/java/org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java
@@ -21,9 +21,11 @@ import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import java.io.IOException;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
@@ -274,4 +276,34 @@ public class SparkSQLPushDownFilter extends FilterBase{
return builder.build().toByteArray();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || (!(obj instanceof SparkSQLPushDownFilter))) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ SparkSQLPushDownFilter f = (SparkSQLPushDownFilter) obj;
+ if (this.valueFromQueryArray.length != f.valueFromQueryArray.length) {
+ return false;
+ }
+ int i = 0;
+ for (byte[] val : this.valueFromQueryArray) {
+ if (!Bytes.equals(val, f.valueFromQueryArray[i])) {
+ return false;
+ }
+ i++;
+ }
+ return this.dynamicLogicExpression.equals(f.dynamicLogicExpression) &&
+ this.currentCellToColumnIndexMap.equals(f.currentCellToColumnIndexMap) &&
+ this.encoderClassName.equals(f.encoderClassName);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.dynamicLogicExpression, Arrays.hashCode(this.valueFromQueryArray),
+ this.currentCellToColumnIndexMap, this.encoderClassName);
+ }
}