This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-3 by this push:
new ef8d677374e HBASE-29195 Get Column value with timestamp is giving
wrong result as not found (#6814)
ef8d677374e is described below
commit ef8d677374ec9d41730304d667a9e8fe6e5ee9ac
Author: Chandra Sekhar K <[email protected]>
AuthorDate: Fri Apr 11 19:11:06 2025 +0530
HBASE-29195 Get Column value with timestamp is giving wrong result as not
found (#6814)
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit 15789ec56c98022f5ac9cc0832ac06b5639b3cd9)
---
.../java/org/apache/hadoop/hbase/rest/RowResultGenerator.java | 7 ++++++-
.../src/main/java/org/apache/hadoop/hbase/rest/RowSpec.java | 7 +++++++
.../java/org/apache/hadoop/hbase/rest/ScannerResultGenerator.java | 8 +++++++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
index ce1eda224b4..c836ba9600a 100644
---
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
+++
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
@@ -56,7 +56,12 @@ public class RowResultGenerator extends ResultGenerator {
}
}
}
- get.setTimeRange(rowspec.getStartTime(), rowspec.getEndTime());
+ if (rowspec.isPartialTimeRange()) {
+ get.setTimestamp(rowspec.getTimestamp());
+ } else {
+ get.setTimeRange(rowspec.getStartTime(), rowspec.getEndTime());
+ }
+
get.readVersions(rowspec.getMaxVersions());
if (filter != null) {
get.setFilter(filter);
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowSpec.java
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowSpec.java
index e1559dd6723..23dfece6d3d 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowSpec.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowSpec.java
@@ -46,6 +46,7 @@ public class RowSpec {
private long endTime = DEFAULT_END_TIMESTAMP;
private int maxVersions = 1;
private int maxValues = Integer.MAX_VALUE;
+ private boolean partialTimeRange;
public RowSpec(String path) throws IllegalArgumentException {
this(path, null);
@@ -216,6 +217,7 @@ public class RowSpec {
endTime = time1;
} else {
endTime = time0;
+ partialTimeRange = true;
}
return i;
}
@@ -426,4 +428,9 @@ public class RowSpec {
result.append("}");
return result.toString();
}
+
+ public boolean isPartialTimeRange() {
+ return partialTimeRange;
+ }
+
}
diff --git
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerResultGenerator.java
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerResultGenerator.java
index 99b54ea2693..6fae43f43ac 100644
---
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerResultGenerator.java
+++
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerResultGenerator.java
@@ -91,7 +91,13 @@ public class ScannerResultGenerator extends ResultGenerator {
}
}
}
- scan.setTimeRange(rowspec.getStartTime(), rowspec.getEndTime());
+
+ if (rowspec.isPartialTimeRange()) {
+ scan.setTimestamp(rowspec.getTimestamp());
+ } else {
+ scan.setTimeRange(rowspec.getStartTime(), rowspec.getEndTime());
+ }
+
scan.readVersions(rowspec.getMaxVersions());
if (filter != null) {
scan.setFilter(filter);