mikemccand commented on code in PR #11888:
URL: https://github.com/apache/lucene/pull/11888#discussion_r1539192140
##########
lucene/core/src/java/org/apache/lucene/codecs/lucene90/blocktree/SegmentTermsEnumFrame.java:
##########
@@ -523,7 +526,9 @@ public void scanToSubBlock(long subFP) {
// NOTE: sets startBytePos/suffix as a side effect
public SeekStatus scanToTerm(BytesRef target, boolean exactOnly) throws
IOException {
- return isLeafBlock ? scanToTermLeaf(target, exactOnly) :
scanToTermNonLeaf(target, exactOnly);
+ return isLeafBlock
Review Comment:
I know this was a pre-existing ternary :) But now we are embedding another
confusing ternary inside the first one -- could we instead spell all of this
out as verbose `if`?
##########
lucene/core/src/java/org/apache/lucene/codecs/lucene90/blocktree/SegmentTermsEnumFrame.java:
##########
@@ -568,8 +573,6 @@ public SeekStatus scanToTermLeaf(BytesRef target, boolean
exactOnly) throws IOEx
assert prefixMatches(target);
- // TODO: binary search when all terms have the same length, which is
common for ID fields,
Review Comment:
Aha! Another `TODO` gone, thank you @vsop-479!
##########
lucene/core/src/test/org/apache/lucene/codecs/lucene99/TestLucene99PostingsFormat.java:
##########
@@ -143,4 +141,13 @@ private void doTestImpactSerialization(List<Impact>
impacts) throws IOException
}
}
}
+
+ @Override
+ protected void subCheckBinarySearch(TermsEnum termsEnum) throws Exception {
+ // 10004a matched block's entries: [100001, 100003, ..., 100049].
+ // if target greater than the last entry of the matched block,
+ // termsEnum.term should be the last entry.
+ assertFalse(termsEnum.seekExact(new BytesRef("10004a")));
+ assertEquals(termsEnum.term(), new BytesRef("100049"));
Review Comment:
Hmm, when `seekExact` returns `false`, the `TermsEnum` is unpositioned and
calling `.term()` (and other methods e.g. `.postings()`) is not allowed (the
behavior is undefined -- it could throw an exception or corrupt its internal
state or so) ... why are we testing that here :)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]