Repository: hbase Updated Branches: refs/heads/branch-2 e58670683 -> f74cf679e
Revert "HBASE-17249 Get/Scan's setTimeRange/setColumnFamilyTimeRange can take the TimeRange reference as the parameter instead of creating a new setColumnFamilyTimeRange instance. (huaxiang sun)" This reverts commit 61220e4d7c8d7e5fb8ed3bbe2469bc86632c48de. Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f74cf679 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f74cf679 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f74cf679 Branch: refs/heads/branch-2 Commit: f74cf679ecebed2ab5c95ccd678f48482644b829 Parents: e586706 Author: Huaxiang Sun <[email protected]> Authored: Thu Aug 24 16:28:16 2017 -0700 Committer: Huaxiang Sun <[email protected]> Committed: Fri Aug 25 11:19:46 2017 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/hbase/client/Get.java | 33 +++++++---------- .../org/apache/hadoop/hbase/client/Query.java | 38 +------------------- .../org/apache/hadoop/hbase/client/Scan.java | 36 ++++++++----------- .../hadoop/hbase/protobuf/ProtobufUtil.java | 12 ++++--- .../hbase/shaded/protobuf/ProtobufUtil.java | 12 ++++--- 5 files changed, 43 insertions(+), 88 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/f74cf679/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java index 226ca85..d40e0f2 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java @@ -73,6 +73,7 @@ public class Get extends Query private boolean cacheBlocks = true; private int storeLimit = -1; private int storeOffset = 0; + private TimeRange tr = new TimeRange(); private boolean checkExistenceOnly = false; private boolean closestRowBefore = false; private Map<byte [], NavigableSet<byte []>> familyMap = new TreeMap<>(Bytes.BYTES_COMPARATOR); @@ -222,19 +223,9 @@ public class Get extends Query * @throws IOException * @return this for invocation chaining */ - @Override public Get setTimeRange(long minStamp, long maxStamp) throws IOException { - return (Get) super.setTimeRange(minStamp, maxStamp); - } - - /** - * Get versions of columns only within the specified timestamp range, - * @param tr Input TimeRange - * @return this for invocation chaining - */ - @Override - public Get setTimeRange(TimeRange tr) { - return (Get) super.setTimeRange(tr); + tr = new TimeRange(minStamp, maxStamp); + return this; } /** @@ -245,7 +236,7 @@ public class Get extends Query public Get setTimeStamp(long timestamp) throws IOException { try { - super.setTimeRange(timestamp, timestamp + 1); + tr = new TimeRange(timestamp, timestamp+1); } catch(Exception e) { // This should never happen, unless integer overflow or something extremely wrong... LOG.error("TimeRange failed, likely caused by integer overflow. ", e); @@ -254,16 +245,10 @@ public class Get extends Query return this; } - @Override - public Get setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) { + @Override public Get setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) { return (Get) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp); } - @Override - public Get setColumnFamilyTimeRange(byte[] cf, TimeRange tr) { - return (Get) super.setColumnFamilyTimeRange(cf, tr); - } - /** * Get all available versions. * @return this for invocation chaining @@ -404,6 +389,14 @@ public class Get extends Query } /** + * Method for retrieving the get's TimeRange + * @return timeRange + */ + public TimeRange getTimeRange() { + return this.tr; + } + + /** * Method for retrieving the keys in the familyMap * @return keys in the current familyMap */ http://git-wip-us.apache.org/repos/asf/hbase/blob/f74cf679/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Query.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Query.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Query.java index cc9e9d4..a738c84 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Query.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Query.java @@ -17,7 +17,6 @@ */ package org.apache.hadoop.hbase.client; -import java.io.IOException; import java.util.Map; import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps; @@ -44,7 +43,6 @@ public abstract class Query extends OperationWithAttributes { protected Consistency consistency = Consistency.STRONG; protected Map<byte[], TimeRange> colFamTimeRangeMap = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); protected Boolean loadColumnFamiliesOnDemand = null; - protected TimeRange tr = new TimeRange(); /** * @return Filter */ @@ -65,36 +63,6 @@ public abstract class Query extends OperationWithAttributes { } /** - * @return TimeRange - */ - public TimeRange getTimeRange() { - return tr; - } - - /** - * Sets the TimeRange to be used by this Query - * @param tr TimeRange - * @return Query - */ - public Query setTimeRange(TimeRange tr) { - this.tr = tr; - return this; - } - - /** - * Sets the TimeRange to be used by this Query - * [minStamp, maxStamp). - * @param minStamp minimum timestamp value, inclusive - * @param maxStamp maximum timestamp value, exclusive - * @throws IOException - * @return this for invocation chaining - */ - public Query setTimeRange(long minStamp, long maxStamp) throws IOException { - tr = new TimeRange(minStamp, maxStamp); - return this; - } - - /** * Sets the authorizations to be used by this Query * @param authorizations */ @@ -257,16 +225,12 @@ public abstract class Query extends OperationWithAttributes { * @param maxStamp maximum timestamp value, exclusive * @return this */ + public Query setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) { colFamTimeRangeMap.put(cf, new TimeRange(minStamp, maxStamp)); return this; } - public Query setColumnFamilyTimeRange(byte[] cf, TimeRange tr) { - colFamTimeRangeMap.put(cf, tr); - return this; - } - /** * @return A map of column families to time ranges */ http://git-wip-us.apache.org/repos/asf/hbase/blob/f74cf679/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java index 9100b45..53619f5 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java @@ -141,7 +141,9 @@ public class Scan extends Query { private long maxResultSize = -1; private boolean cacheBlocks = true; private boolean reversed = false; - private Map<byte[], NavigableSet<byte[]>> familyMap = new TreeMap<>(Bytes.BYTES_COMPARATOR); + private TimeRange tr = new TimeRange(); + private Map<byte [], NavigableSet<byte []>> familyMap = + new TreeMap<byte [], NavigableSet<byte []>>(Bytes.BYTES_COMPARATOR); private Boolean asyncPrefetch = null; /** @@ -350,7 +352,7 @@ public class Scan extends Query { } /** - * Set versions of columns only within the specified timestamp range, + * Get versions of columns only within the specified timestamp range, * [minStamp, maxStamp). Note, default maximum versions to return is 1. If * your time range spans more than one version and you want all versions * returned, up the number of versions beyond the default. @@ -360,18 +362,9 @@ public class Scan extends Query { * @see #setMaxVersions(int) * @return this */ - @Override public Scan setTimeRange(long minStamp, long maxStamp) throws IOException { - return (Scan) super.setTimeRange(minStamp, maxStamp); - } - - /** - * Set versions of columns only within the specified timestamp range, - * @param tr Input TimeRange - * @return this for invocation chaining - */ - public Scan setTimeRange(TimeRange tr) { - return (Scan) super.setTimeRange(tr); + tr = new TimeRange(minStamp, maxStamp); + return this; } /** @@ -387,7 +380,7 @@ public class Scan extends Query { public Scan setTimeStamp(long timestamp) throws IOException { try { - super.setTimeRange(timestamp, timestamp + 1); + tr = new TimeRange(timestamp, timestamp+1); } catch(Exception e) { // This should never happen, unless integer overflow or something extremely wrong... LOG.error("TimeRange failed, likely caused by integer overflow. ", e); @@ -396,16 +389,10 @@ public class Scan extends Query { return this; } - @Override - public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) { + @Override public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp) { return (Scan) super.setColumnFamilyTimeRange(cf, minStamp, maxStamp); } - @Override - public Scan setColumnFamilyTimeRange(byte[] cf, TimeRange tr) { - return (Scan) super.setColumnFamilyTimeRange(cf, tr); - } - /** * Set the start row of the scan. * <p> @@ -817,6 +804,13 @@ public class Scan extends Query { } /** + * @return TimeRange + */ + public TimeRange getTimeRange() { + return this.tr; + } + + /** * @return RowFilter */ @Override http://git-wip-us.apache.org/repos/asf/hbase/blob/f74cf679/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java index 43813ea..753b0d3 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java @@ -386,12 +386,13 @@ public final class ProtobufUtil { if (proto.getCfTimeRangeCount() > 0) { for (HBaseProtos.ColumnFamilyTimeRange cftr : proto.getCfTimeRangeList()) { TimeRange timeRange = protoToTimeRange(cftr.getTimeRange()); - get.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), timeRange); + get.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), + timeRange.getMin(), timeRange.getMax()); } } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - get.setTimeRange(timeRange); + get.setTimeRange(timeRange.getMin(), timeRange.getMax()); } if (proto.hasFilter()) { FilterProtos.Filter filter = proto.getFilter(); @@ -779,7 +780,7 @@ public final class ProtobufUtil { } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - get.setTimeRange(timeRange); + get.setTimeRange(timeRange.getMin(), timeRange.getMax()); } for (NameBytesPair attribute : proto.getAttributeList()) { get.setAttribute(attribute.getName(), attribute.getValue().toByteArray()); @@ -967,12 +968,13 @@ public final class ProtobufUtil { if (proto.getCfTimeRangeCount() > 0) { for (HBaseProtos.ColumnFamilyTimeRange cftr : proto.getCfTimeRangeList()) { TimeRange timeRange = protoToTimeRange(cftr.getTimeRange()); - scan.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), timeRange); + scan.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), + timeRange.getMin(), timeRange.getMax()); } } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - scan.setTimeRange(timeRange); + scan.setTimeRange(timeRange.getMin(), timeRange.getMax()); } if (proto.hasFilter()) { FilterProtos.Filter filter = proto.getFilter(); http://git-wip-us.apache.org/repos/asf/hbase/blob/f74cf679/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java index 739526e..b6006f0 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java @@ -511,12 +511,13 @@ public final class ProtobufUtil { if (proto.getCfTimeRangeCount() > 0) { for (HBaseProtos.ColumnFamilyTimeRange cftr : proto.getCfTimeRangeList()) { TimeRange timeRange = protoToTimeRange(cftr.getTimeRange()); - get.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), timeRange); + get.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), + timeRange.getMin(), timeRange.getMax()); } } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - get.setTimeRange(timeRange); + get.setTimeRange(timeRange.getMin(), timeRange.getMax()); } if (proto.hasFilter()) { FilterProtos.Filter filter = proto.getFilter(); @@ -900,7 +901,7 @@ public final class ProtobufUtil { } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - get.setTimeRange(timeRange); + get.setTimeRange(timeRange.getMin(), timeRange.getMax()); } for (NameBytesPair attribute : proto.getAttributeList()) { get.setAttribute(attribute.getName(), attribute.getValue().toByteArray()); @@ -1096,12 +1097,13 @@ public final class ProtobufUtil { if (proto.getCfTimeRangeCount() > 0) { for (HBaseProtos.ColumnFamilyTimeRange cftr : proto.getCfTimeRangeList()) { TimeRange timeRange = protoToTimeRange(cftr.getTimeRange()); - scan.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), timeRange); + scan.setColumnFamilyTimeRange(cftr.getColumnFamily().toByteArray(), + timeRange.getMin(), timeRange.getMax()); } } if (proto.hasTimeRange()) { TimeRange timeRange = protoToTimeRange(proto.getTimeRange()); - scan.setTimeRange(timeRange); + scan.setTimeRange(timeRange.getMin(), timeRange.getMax()); } if (proto.hasFilter()) { FilterProtos.Filter filter = proto.getFilter();
