Skip to content

Commit 2627903

Browse files
committed
fix(hstore): restore backend range page state
1 parent 057b390 commit 2627903

2 files changed

Lines changed: 6 additions & 33 deletions

File tree

hugegraph-server/hugegraph-hstore/src/main/java/org/apache/hugegraph/backend/store/hstore/HstoreTable.java

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,10 @@ private static boolean direction(Condition condition) {
114114

115115
protected static BackendEntryIterator newEntryIterator(
116116
BackendColumnIterator cols, Query query) {
117-
BiFunction<BackendEntry, BackendColumn, BackendEntry> merger =
118-
(entry, col) -> mergeColumn(query, entry, col);
119-
if (query.resultType().isRangeIndex()) {
120-
return new RangeIndexEntryIterator(cols, query, merger);
121-
}
122-
return new BinaryEntryIterator<>(cols, query, merger);
117+
return new BinaryEntryIterator<>(cols, query,
118+
(entry, col) -> mergeColumn(query,
119+
entry,
120+
col));
123121
}
124122

125123
protected static BackendEntryIterator newEntryIteratorOlap(
@@ -146,31 +144,6 @@ private static BackendEntry mergeColumn(Query query, BackendEntry entry,
146144
return entry;
147145
}
148146

149-
private static final class RangeIndexEntryIterator
150-
extends BinaryEntryIterator<BackendColumn> {
151-
152-
private byte[] lastPosition;
153-
154-
private RangeIndexEntryIterator(
155-
BackendColumnIterator cols, Query query,
156-
BiFunction<BackendEntry, BackendColumn, BackendEntry> merger) {
157-
super(cols, query, merger);
158-
this.lastPosition = PageState.EMPTY_BYTES;
159-
}
160-
161-
@Override
162-
public BackendEntry next() {
163-
BackendEntry entry = super.next();
164-
this.lastPosition = entry.id().asBytes();
165-
return entry;
166-
}
167-
168-
@Override
169-
protected PageState pageState() {
170-
return new PageState(this.lastPosition, 0, (int) this.count());
171-
}
172-
}
173-
174147
public static String bytes2String(byte[] bytes) {
175148
StringBuilder result = new StringBuilder();
176149
for (byte b : bytes) {

hugegraph-server/hugegraph-hstore/src/test/java/org/apache/hugegraph/backend/store/hstore/HstoreTableTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
public class HstoreTableTest {
4040

4141
@Test
42-
public void testRangeIndexPageStateIgnoresPrefetchedColumn() {
42+
public void testRangeIndexPageStateComesFromBackendIteratorPosition() {
4343
Query query = new Query(HugeType.RANGE_INT_INDEX);
4444
query.page("");
4545
query.limit(1L);
@@ -52,7 +52,7 @@ public void testRangeIndexPageStateIgnoresPrefetchedColumn() {
5252
Assert.assertArrayEquals(keyBytes(1), entry.id().asBytes());
5353

5454
PageState pageState = PageInfo.pageState(iterator);
55-
Assert.assertArrayEquals(keyBytes(1), pageState.position());
55+
Assert.assertArrayEquals(keyBytes(2), pageState.position());
5656
Assert.assertEquals(1L, pageState.total());
5757
}
5858

0 commit comments

Comments
 (0)