Skip to content

Commit 80b90ee

Browse files
authored
patch exist bugfix to 2.x (#133)
1 parent dbac145 commit 80b90ee

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

src/main/java/com/alipay/oceanbase/hbase/OHTable.java

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -514,20 +514,14 @@ public TableDescriptor getDescriptor() throws IOException {
514514
*/
515515
@Override
516516
public boolean exists(Get get) throws IOException {
517-
get.setCheckExistenceOnly(true);
518-
return this.get(get).getExists();
517+
Get newGet = new Get(get);
518+
newGet.setCheckExistenceOnly(true);
519+
return this.get(newGet).getExists();
519520
}
520521

521522
@Override
522523
public boolean[] existsAll(List<Get> gets) throws IOException {
523-
if (gets.isEmpty()) {
524-
return new boolean[] {};
525-
}
526-
if (gets.size() == 1) {
527-
return new boolean[] { exists(gets.get(0)) };
528-
}
529-
Result[] r = get(gets);
530-
boolean[] ret = new boolean[r.length];
524+
boolean[] ret = new boolean[gets.size()];
531525
for (int i = 0; i < gets.size(); ++i) {
532526
ret[i] = exists(gets.get(i));
533527
}
@@ -1752,20 +1746,12 @@ private ObTableQuery buildObTableQuery(ObHTableFilter filter, final Scan scan) {
17521746
private ObTableQuery buildObTableQuery(final Get get, Collection<byte[]> columnQualifiers)
17531747
throws IOException {
17541748
ObTableQuery obTableQuery;
1755-
if (get.isClosestRowBefore()) {
1756-
PageFilter pageFilter = new PageFilter(1);
1757-
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
1758-
filterList.addFilter(pageFilter);
1759-
if (null != get.getFilter()) {
1760-
filterList.addFilter(get.getFilter());
1761-
}
1762-
get.setFilter(filterList);
1763-
}
17641749
ObHTableFilter filter = buildObHTableFilter(get.getFilter(), get.getTimeRange(),
17651750
get.getMaxVersions(), columnQualifiers);
17661751
if (get.isClosestRowBefore()) {
17671752
obTableQuery = buildObTableQuery(filter, HConstants.EMPTY_BYTE_ARRAY, true,
17681753
get.getRow(), true, true);
1754+
obTableQuery.setLimit(1);
17691755
} else {
17701756
obTableQuery = buildObTableQuery(filter, get.getRow(), true, get.getRow(), true, false);
17711757
}

0 commit comments

Comments
 (0)