Bugfix for rare bug where some queries may miss hits due to BTreeReader's retain function giving up too fast. (#129)

Co-authored-by: Viktor Lofgren <vlofgren@marginalia.nu>
Reviewed-on: https://git.marginalia.nu/marginalia/marginalia.nu/pulls/129
This commit is contained in:
Viktor Lofgren 2022-11-22 16:35:09 +01:00
parent f0f82f7db0
commit 06299cd554

View File

@ -52,7 +52,9 @@ public class BTreeReader {
public void retainEntries(BTreeQueryBuffer buffer) {
if (header.layers() == 0) {
BTreePointer pointer = new BTreePointer(header);
pointer.retainData(buffer);
while (buffer.hasMore()) {
pointer.retainData(buffer);
}
}
retainSingle(buffer);
}
@ -61,7 +63,9 @@ public class BTreeReader {
public void rejectEntries(BTreeQueryBuffer buffer) {
if (header.layers() == 0) {
BTreePointer pointer = new BTreePointer(header);
pointer.rejectData(buffer);
while (buffer.hasMore()) {
pointer.rejectData(buffer);
}
}
rejectSingle(buffer);
}