From c80d7b96f350e3c18d160d2747dfa50254b495e6 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Mon, 27 Nov 2023 16:03:26 +0800 Subject: [PATCH 1/6] #2177 --- .../hugegraph/backend/store/hbase/HbaseSessions.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java index 06cbf9ab73..0d7b4b5a02 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java @@ -391,7 +391,10 @@ default R scan(String table, long limit) { * Scan records by rowkey prefix from a table */ default R scan(String table, byte[] prefix) { - return this.scan(table, prefix, true, prefix); + // TODO setRowPrefixFilter deprecated since HBase 2.5.0, + // will be removed in 4.0.0,setStartStopRowForPrefixScan(byte[]) instead. + final Scan scan = new Scan().setRowPrefixFilter(prefix); + return this.scan(table, scan); } /** @@ -879,7 +882,8 @@ private long count(RowIterator iter) { } @Override - public Number scan(String table, Scan scan) { + public Number + scan(String table, Scan scan) { LongColumnInterpreter ci = new LongColumnInterpreter(); try { return this.aggrClient.rowCount(table(table), ci, scan); From f002452fc640af0d218a2af6f92fbb44f0bcde73 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Mon, 27 Nov 2023 16:29:45 +0800 Subject: [PATCH 2/6] #2177 --- .../hugegraph/backend/store/hbase/HbaseSessions.java | 11 +---------- .../hugegraph/backend/store/hbase/HbaseTable.java | 3 +-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java index 0d7b4b5a02..d86e5f435a 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java @@ -391,7 +391,7 @@ default R scan(String table, long limit) { * Scan records by rowkey prefix from a table */ default R scan(String table, byte[] prefix) { - // TODO setRowPrefixFilter deprecated since HBase 2.5.0, + // TODO: setRowPrefixFilter deprecated since HBase 2.5.0, // will be removed in 4.0.0,setStartStopRowForPrefixScan(byte[]) instead. final Scan scan = new Scan().setRowPrefixFilter(prefix); return this.scan(table, scan); @@ -416,15 +416,6 @@ default R scan(String table, Set prefixes) { return this.scan(table, scan); } - /** - * Scan records by rowkey start and prefix from a table - */ - default R scan(String table, byte[] startRow, boolean inclusiveStart, - byte[] prefix) { - Scan scan = new Scan().withStartRow(startRow, inclusiveStart) - .setFilter(new PrefixFilter(prefix)); - return this.scan(table, scan); - } /** * Scan records by rowkey range from a table diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java index eb45bd60b4..6d06e7a1e9 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java @@ -230,8 +230,7 @@ protected R queryByIds(HbaseSessions.HbaseSession session, Collection protected R queryByPrefix(HbaseSessions.HbaseSession session, IdPrefixQuery query) { - return session.scan(this.table(), query.start().asBytes(), - query.inclusiveStart(), query.prefix().asBytes()); + return session.scan(this.table(), query.prefix().asBytes()); } protected R queryByRange(HbaseSessions.HbaseSession session, IdRangeQuery query) { From 9b52d39ed960db0dcd7e3718740b23d350a571f7 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Mon, 27 Nov 2023 16:33:08 +0800 Subject: [PATCH 3/6] #2177 --- .../apache/hugegraph/backend/store/hbase/HbaseSessions.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java index d86e5f435a..274051b318 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java @@ -873,8 +873,7 @@ private long count(RowIterator iter) { } @Override - public Number - scan(String table, Scan scan) { + public Number scan(String table, Scan scan) { LongColumnInterpreter ci = new LongColumnInterpreter(); try { return this.aggrClient.rowCount(table(table), ci, scan); From 4c5d119e05abb68bc0f920104e8531dc31643df2 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Mon, 27 Nov 2023 17:38:40 +0800 Subject: [PATCH 4/6] #2177 --- .../apache/hugegraph/backend/store/hbase/HbaseSessions.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java index 274051b318..40c9590230 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java @@ -389,10 +389,10 @@ default R scan(String table, long limit) { /** * Scan records by rowkey prefix from a table + * TODO: setRowPrefixFilter deprecated since HBase 2.5.0, will be removed in 4.0.0, + * use setStartStopRowForPrefixScan(byte[]) instead. */ default R scan(String table, byte[] prefix) { - // TODO: setRowPrefixFilter deprecated since HBase 2.5.0, - // will be removed in 4.0.0,setStartStopRowForPrefixScan(byte[]) instead. final Scan scan = new Scan().setRowPrefixFilter(prefix); return this.scan(table, scan); } From 6bbf5d24fde03d1b92deb8d6851f56a68a8bf484 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Tue, 28 Nov 2023 16:44:32 +0800 Subject: [PATCH 5/6] #2177 --- .../org/apache/hugegraph/backend/store/hbase/HbaseTable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java index 6d06e7a1e9..514396a84e 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java @@ -230,7 +230,7 @@ protected R queryByIds(HbaseSessions.HbaseSession session, Collection protected R queryByPrefix(HbaseSessions.HbaseSession session, IdPrefixQuery query) { - return session.scan(this.table(), query.prefix().asBytes()); + return session.scan(this.table(), query.start() == null ? query.prefix().asBytes() : query.start().asBytes()); } protected R queryByRange(HbaseSessions.HbaseSession session, IdRangeQuery query) { From 90780fcea49a76ef6114dd647d58aed94a9cda39 Mon Sep 17 00:00:00 2001 From: haohao0103 <956322745@qq.com> Date: Wed, 29 Nov 2023 13:30:37 +0800 Subject: [PATCH 6/6] #2177 --- .../backend/store/hbase/HbaseSessions.java | 21 +++++++++++++++---- .../backend/store/hbase/HbaseTable.java | 3 ++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java index 40c9590230..6f0bf3714a 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java @@ -389,12 +389,9 @@ default R scan(String table, long limit) { /** * Scan records by rowkey prefix from a table - * TODO: setRowPrefixFilter deprecated since HBase 2.5.0, will be removed in 4.0.0, - * use setStartStopRowForPrefixScan(byte[]) instead. */ default R scan(String table, byte[] prefix) { - final Scan scan = new Scan().setRowPrefixFilter(prefix); - return this.scan(table, scan); + return this.scan(table, prefix, true, prefix); } /** @@ -416,6 +413,22 @@ default R scan(String table, Set prefixes) { return this.scan(table, scan); } + /** + * Scan records by rowkey start and prefix from a table + * TODO: setRowPrefixFilter deprecated since HBase 2.5.0, will be removed in 4.0.0, + * use setStartStopRowForPrefixScan(byte[]) instead. + */ + default R scan(String table, byte[] startRow, boolean inclusiveStart, + byte[] prefix) { + final Scan scan = new Scan(); + if(startRow == prefix) { + scan.setRowPrefixFilter(prefix); + } else { + scan.withStartRow(startRow, inclusiveStart) + .setFilter(new PrefixFilter(prefix)); + } + return this.scan(table, scan); + } /** * Scan records by rowkey range from a table diff --git a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java index 514396a84e..eb45bd60b4 100644 --- a/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java +++ b/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseTable.java @@ -230,7 +230,8 @@ protected R queryByIds(HbaseSessions.HbaseSession session, Collection protected R queryByPrefix(HbaseSessions.HbaseSession session, IdPrefixQuery query) { - return session.scan(this.table(), query.start() == null ? query.prefix().asBytes() : query.start().asBytes()); + return session.scan(this.table(), query.start().asBytes(), + query.inclusiveStart(), query.prefix().asBytes()); } protected R queryByRange(HbaseSessions.HbaseSession session, IdRangeQuery query) {