s1monw commented on code in PR #12829: URL: https://github.com/apache/lucene/pull/12829#discussion_r1434193511
########## lucene/core/src/java/org/apache/lucene/index/CheckIndex.java: ########## @@ -1180,33 +1180,43 @@ public static Status.IndexSortStatus testSort( comparators[i] = fields[i].getComparator(1, Pruning.NONE).getLeafComparator(readerContext); } - int maxDoc = reader.maxDoc(); - try { - - for (int docID = 1; docID < maxDoc; docID++) { - + LeafMetaData metaData = reader.getMetaData(); + FieldInfos fieldInfos = reader.getFieldInfos(); + if (metaData.hasBlocks() + && fieldInfos.getParentField() == null + && metaData.getCreatedVersionMajor() >= Version.LUCENE_10_0_0.major) { + throw new IllegalStateException( + "parent field is not set but the index has document blocks and was created with version: " + + metaData.getCreatedVersionMajor()); + } + final DocIdSetIterator iter = + metaData.hasBlocks() && fieldInfos.getParentField() != null + ? reader.getNumericDocValues(fieldInfos.getParentField()) + : DocIdSetIterator.all(reader.maxDoc()); + int prevDoc = iter.nextDoc(); + int nextDoc; + while ((nextDoc = iter.nextDoc()) != NO_MORE_DOCS) { int cmp = 0; - for (int i = 0; i < comparators.length; i++) { - // TODO: would be better if copy() didnt cause a term lookup in TermOrdVal & co, + // TODO: would be better if copy() didn't cause a term lookup in TermOrdVal & co, // the segments are always the same here... - comparators[i].copy(0, docID - 1); + comparators[i].copy(0, prevDoc); comparators[i].setBottom(0); - cmp = reverseMul[i] * comparators[i].compareBottom(docID); + cmp = reverseMul[i] * comparators[i].compareBottom(nextDoc); if (cmp != 0) { break; } } - + prevDoc = nextDoc; Review Comment: good catch -- 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: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org