@@ -124,10 +124,10 @@ private static class SingletonLongs extends BlockDocValuesReader {
124124        }
125125
126126        @ Override 
127-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
128-             try  (BlockLoader .LongBuilder  builder  = factory .longsFromDocValues (docs .count ())) {
127+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
128+             try  (BlockLoader .LongBuilder  builder  = factory .longsFromDocValues (docs .count () -  offset )) {
129129                int  lastDoc  = -1 ;
130-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
130+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
131131                    int  doc  = docs .get (i );
132132                    if  (doc  < lastDoc ) {
133133                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -173,9 +173,9 @@ private static class Longs extends BlockDocValuesReader {
173173        }
174174
175175        @ Override 
176-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
177-             try  (BlockLoader .LongBuilder  builder  = factory .longsFromDocValues (docs .count ())) {
178-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
176+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
177+             try  (BlockLoader .LongBuilder  builder  = factory .longsFromDocValues (docs .count () -  offset )) {
178+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
179179                    int  doc  = docs .get (i );
180180                    if  (doc  < this .docID ) {
181181                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -259,10 +259,10 @@ private static class SingletonInts extends BlockDocValuesReader {
259259        }
260260
261261        @ Override 
262-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
263-             try  (BlockLoader .IntBuilder  builder  = factory .intsFromDocValues (docs .count ())) {
262+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
263+             try  (BlockLoader .IntBuilder  builder  = factory .intsFromDocValues (docs .count () -  offset )) {
264264                int  lastDoc  = -1 ;
265-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
265+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
266266                    int  doc  = docs .get (i );
267267                    if  (doc  < lastDoc ) {
268268                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -308,9 +308,9 @@ private static class Ints extends BlockDocValuesReader {
308308        }
309309
310310        @ Override 
311-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
312-             try  (BlockLoader .IntBuilder  builder  = factory .intsFromDocValues (docs .count ())) {
313-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
311+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
312+             try  (BlockLoader .IntBuilder  builder  = factory .intsFromDocValues (docs .count () -  offset )) {
313+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
314314                    int  doc  = docs .get (i );
315315                    if  (doc  < this .docID ) {
316316                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -408,10 +408,10 @@ private static class SingletonDoubles extends BlockDocValuesReader {
408408        }
409409
410410        @ Override 
411-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
412-             try  (BlockLoader .DoubleBuilder  builder  = factory .doublesFromDocValues (docs .count ())) {
411+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
412+             try  (BlockLoader .DoubleBuilder  builder  = factory .doublesFromDocValues (docs .count () -  offset )) {
413413                int  lastDoc  = -1 ;
414-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
414+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
415415                    int  doc  = docs .get (i );
416416                    if  (doc  < lastDoc ) {
417417                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -461,9 +461,9 @@ private static class Doubles extends BlockDocValuesReader {
461461        }
462462
463463        @ Override 
464-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
465-             try  (BlockLoader .DoubleBuilder  builder  = factory .doublesFromDocValues (docs .count ())) {
466-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
464+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
465+             try  (BlockLoader .DoubleBuilder  builder  = factory .doublesFromDocValues (docs .count () -  offset )) {
466+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
467467                    int  doc  = docs .get (i );
468468                    if  (doc  < this .docID ) {
469469                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -544,10 +544,10 @@ private static class DenseVectorValuesBlockReader extends BlockDocValuesReader {
544544        }
545545
546546        @ Override 
547-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
547+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
548548            // Doubles from doc values ensures that the values are in order 
549-             try  (BlockLoader .FloatBuilder  builder  = factory .denseVectors (docs .count (), dimensions )) {
550-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
549+             try  (BlockLoader .FloatBuilder  builder  = factory .denseVectors (docs .count () -  offset , dimensions )) {
550+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
551551                    int  doc  = docs .get (i );
552552                    if  (doc  < iterator .docID ()) {
553553                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -645,19 +645,19 @@ private BlockLoader.Block readSingleDoc(BlockFactory factory, int docId) throws
645645            if  (ordinals .advanceExact (docId )) {
646646                BytesRef  v  = ordinals .lookupOrd (ordinals .ordValue ());
647647                // the returned BytesRef can be reused 
648-                 return  factory .constantBytes (BytesRef .deepCopyOf (v ));
648+                 return  factory .constantBytes (BytesRef .deepCopyOf (v ),  1 );
649649            } else  {
650-                 return  factory .constantNulls ();
650+                 return  factory .constantNulls (1 );
651651            }
652652        }
653653
654654        @ Override 
655-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
656-             if  (docs .count () == 1 ) {
657-                 return  readSingleDoc (factory , docs .get (0 ));
655+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
656+             if  (docs .count () -  offset   == 1 ) {
657+                 return  readSingleDoc (factory , docs .get (offset ));
658658            }
659-             try  (BlockLoader . SingletonOrdinalsBuilder  builder  = factory .singletonOrdinalsBuilder (ordinals , docs .count ())) {
660-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
659+             try  (var  builder  = factory .singletonOrdinalsBuilder (ordinals , docs .count () -  offset )) {
660+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
661661                    int  doc  = docs .get (i );
662662                    if  (doc  < ordinals .docID ()) {
663663                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -700,9 +700,9 @@ private static class Ordinals extends BlockDocValuesReader {
700700        }
701701
702702        @ Override 
703-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
704-             try  (BytesRefBuilder  builder  = factory .bytesRefsFromDocValues (docs .count ())) {
705-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
703+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
704+             try  (BytesRefBuilder  builder  = factory .bytesRefsFromDocValues (docs .count () -  offset )) {
705+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
706706                    int  doc  = docs .get (i );
707707                    if  (doc  < ordinals .docID ()) {
708708                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -780,9 +780,9 @@ private static class BytesRefsFromBinary extends BlockDocValuesReader {
780780        }
781781
782782        @ Override 
783-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
784-             try  (BlockLoader .BytesRefBuilder  builder  = factory .bytesRefs (docs .count ())) {
785-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
783+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
784+             try  (BlockLoader .BytesRefBuilder  builder  = factory .bytesRefs (docs .count () -  offset )) {
785+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
786786                    int  doc  = docs .get (i );
787787                    if  (doc  < docID ) {
788788                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -879,9 +879,9 @@ private static class DenseVectorFromBinary extends BlockDocValuesReader {
879879        }
880880
881881        @ Override 
882-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
883-             try  (BlockLoader .FloatBuilder  builder  = factory .denseVectors (docs .count (), dimensions )) {
884-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
882+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
883+             try  (BlockLoader .FloatBuilder  builder  = factory .denseVectors (docs .count () -  offset , dimensions )) {
884+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
885885                    int  doc  = docs .get (i );
886886                    if  (doc  < docID ) {
887887                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -963,10 +963,10 @@ private static class SingletonBooleans extends BlockDocValuesReader {
963963        }
964964
965965        @ Override 
966-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
967-             try  (BlockLoader .BooleanBuilder  builder  = factory .booleansFromDocValues (docs .count ())) {
966+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
967+             try  (BlockLoader .BooleanBuilder  builder  = factory .booleansFromDocValues (docs .count () -  offset )) {
968968                int  lastDoc  = -1 ;
969-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
969+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
970970                    int  doc  = docs .get (i );
971971                    if  (doc  < lastDoc ) {
972972                        throw  new  IllegalStateException ("docs within same block must be in order" );
@@ -1012,9 +1012,9 @@ private static class Booleans extends BlockDocValuesReader {
10121012        }
10131013
10141014        @ Override 
1015-         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ) throws  IOException  {
1016-             try  (BlockLoader .BooleanBuilder  builder  = factory .booleansFromDocValues (docs .count ())) {
1017-                 for  (int  i  = 0 ; i  < docs .count (); i ++) {
1015+         public  BlockLoader .Block  read (BlockFactory  factory , Docs  docs ,  int   offset ) throws  IOException  {
1016+             try  (BlockLoader .BooleanBuilder  builder  = factory .booleansFromDocValues (docs .count () -  offset )) {
1017+                 for  (int  i  = offset ; i  < docs .count (); i ++) {
10181018                    int  doc  = docs .get (i );
10191019                    if  (doc  < this .docID ) {
10201020                        throw  new  IllegalStateException ("docs within same block must be in order" );
0 commit comments