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

This commit is contained in:
Viktor Lofgren 2022-11-22 16:33:29 +01:00
parent baaf21911a
commit c057ce74a8

View File

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