Skip to content

Commit c82eaa0

Browse files
committed
Better tests and real offset
1 parent ae089f8 commit c82eaa0

File tree

21 files changed

+134
-47
lines changed

21 files changed

+134
-47
lines changed

server/src/main/java/org/elasticsearch/index/mapper/AbstractShapeGeometryFieldMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public BlockLoader.AllReader reader(LeafReaderContext context) throws IOExceptio
101101
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
102102
var binaryDocValues = context.reader().getBinaryDocValues(fieldName);
103103
var reader = new GeometryDocValueReader();
104-
try (var builder = factory.ints(docs.count())) {
104+
try (var builder = factory.ints(docs.count() - offset)) {
105105
for (int i = offset; i < docs.count(); i++) {
106106
read(binaryDocValues, docs.get(i), reader, builder);
107107
}

server/src/main/java/org/elasticsearch/index/mapper/BlockDocValuesReader.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ private static class SingletonLongs extends BlockDocValuesReader {
125125

126126
@Override
127127
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
128-
try (BlockLoader.LongBuilder builder = factory.longsFromDocValues(docs.count())) {
128+
try (BlockLoader.LongBuilder builder = factory.longsFromDocValues(docs.count() - offset)) {
129129
int lastDoc = -1;
130130
for (int i = offset; i < docs.count(); i++) {
131131
int doc = docs.get(i);
@@ -174,7 +174,7 @@ private static class Longs extends BlockDocValuesReader {
174174

175175
@Override
176176
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
177-
try (BlockLoader.LongBuilder builder = factory.longsFromDocValues(docs.count())) {
177+
try (BlockLoader.LongBuilder builder = factory.longsFromDocValues(docs.count() - offset)) {
178178
for (int i = offset; i < docs.count(); i++) {
179179
int doc = docs.get(i);
180180
if (doc < this.docID) {
@@ -260,7 +260,7 @@ private static class SingletonInts extends BlockDocValuesReader {
260260

261261
@Override
262262
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
263-
try (BlockLoader.IntBuilder builder = factory.intsFromDocValues(docs.count())) {
263+
try (BlockLoader.IntBuilder builder = factory.intsFromDocValues(docs.count() - offset)) {
264264
int lastDoc = -1;
265265
for (int i = offset; i < docs.count(); i++) {
266266
int doc = docs.get(i);
@@ -309,7 +309,7 @@ private static class Ints extends BlockDocValuesReader {
309309

310310
@Override
311311
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
312-
try (BlockLoader.IntBuilder builder = factory.intsFromDocValues(docs.count())) {
312+
try (BlockLoader.IntBuilder builder = factory.intsFromDocValues(docs.count() - offset)) {
313313
for (int i = offset; i < docs.count(); i++) {
314314
int doc = docs.get(i);
315315
if (doc < this.docID) {
@@ -409,7 +409,7 @@ private static class SingletonDoubles extends BlockDocValuesReader {
409409

410410
@Override
411411
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
412-
try (BlockLoader.DoubleBuilder builder = factory.doublesFromDocValues(docs.count())) {
412+
try (BlockLoader.DoubleBuilder builder = factory.doublesFromDocValues(docs.count() - offset)) {
413413
int lastDoc = -1;
414414
for (int i = offset; i < docs.count(); i++) {
415415
int doc = docs.get(i);
@@ -462,7 +462,7 @@ private static class Doubles extends BlockDocValuesReader {
462462

463463
@Override
464464
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
465-
try (BlockLoader.DoubleBuilder builder = factory.doublesFromDocValues(docs.count())) {
465+
try (BlockLoader.DoubleBuilder builder = factory.doublesFromDocValues(docs.count() - offset)) {
466466
for (int i = offset; i < docs.count(); i++) {
467467
int doc = docs.get(i);
468468
if (doc < this.docID) {
@@ -656,7 +656,7 @@ public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throw
656656
if (docs.count() == 1) {
657657
return readSingleDoc(factory, docs.get(0));
658658
}
659-
try (BlockLoader.SingletonOrdinalsBuilder builder = factory.singletonOrdinalsBuilder(ordinals, docs.count())) {
659+
try (BlockLoader.SingletonOrdinalsBuilder builder = factory.singletonOrdinalsBuilder(ordinals, docs.count() - offset)) {
660660
for (int i = offset; i < docs.count(); i++) {
661661
int doc = docs.get(i);
662662
if (doc < ordinals.docID()) {
@@ -701,7 +701,7 @@ private static class Ordinals extends BlockDocValuesReader {
701701

702702
@Override
703703
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
704-
try (BytesRefBuilder builder = factory.bytesRefsFromDocValues(docs.count())) {
704+
try (BytesRefBuilder builder = factory.bytesRefsFromDocValues(docs.count() - offset)) {
705705
for (int i = offset; i < docs.count(); i++) {
706706
int doc = docs.get(i);
707707
if (doc < ordinals.docID()) {
@@ -781,7 +781,7 @@ private static class BytesRefsFromBinary extends BlockDocValuesReader {
781781

782782
@Override
783783
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
784-
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count())) {
784+
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count() - offset)) {
785785
for (int i = offset; i < docs.count(); i++) {
786786
int doc = docs.get(i);
787787
if (doc < docID) {
@@ -964,7 +964,7 @@ private static class SingletonBooleans extends BlockDocValuesReader {
964964

965965
@Override
966966
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
967-
try (BlockLoader.BooleanBuilder builder = factory.booleansFromDocValues(docs.count())) {
967+
try (BlockLoader.BooleanBuilder builder = factory.booleansFromDocValues(docs.count() - offset)) {
968968
int lastDoc = -1;
969969
for (int i = offset; i < docs.count(); i++) {
970970
int doc = docs.get(i);
@@ -1013,7 +1013,7 @@ private static class Booleans extends BlockDocValuesReader {
10131013

10141014
@Override
10151015
public BlockLoader.Block read(BlockFactory factory, Docs docs, int offset) throws IOException {
1016-
try (BlockLoader.BooleanBuilder builder = factory.booleansFromDocValues(docs.count())) {
1016+
try (BlockLoader.BooleanBuilder builder = factory.booleansFromDocValues(docs.count() - offset)) {
10171017
for (int i = offset; i < docs.count(); i++) {
10181018
int doc = docs.get(i);
10191019
if (doc < this.docID) {

server/src/main/java/org/elasticsearch/index/mapper/BooleanScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public int docId() {
5151
@Override
5252
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5353
// Note that we don't emit falses before trues so we conform to the doc values contract and can use booleansFromDocValues
54-
try (BlockLoader.BooleanBuilder builder = factory.booleans(docs.count())) {
54+
try (BlockLoader.BooleanBuilder builder = factory.booleans(docs.count() - offset)) {
5555
for (int i = offset; i < docs.count(); i++) {
5656
read(docs.get(i), builder);
5757
}

server/src/main/java/org/elasticsearch/index/mapper/DateScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public int docId() {
5151
@Override
5252
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5353
// Note that we don't sort the values sort, so we can't use factory.longsFromDocValues
54-
try (BlockLoader.LongBuilder builder = factory.longs(docs.count())) {
54+
try (BlockLoader.LongBuilder builder = factory.longs(docs.count() - offset)) {
5555
for (int i = offset; i < docs.count(); i++) {
5656
read(docs.get(i), builder);
5757
}

server/src/main/java/org/elasticsearch/index/mapper/DoubleScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public int docId() {
5151
@Override
5252
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5353
// Note that we don't sort the values sort, so we can't use factory.doublesFromDocValues
54-
try (BlockLoader.DoubleBuilder builder = factory.doubles(docs.count())) {
54+
try (BlockLoader.DoubleBuilder builder = factory.doubles(docs.count() - offset)) {
5555
for (int i = offset; i < docs.count(); i++) {
5656
read(docs.get(i), builder);
5757
}

server/src/main/java/org/elasticsearch/index/mapper/IpScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public int docId() {
5151
@Override
5252
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5353
// Note that we don't pre-sort our output so we can't use bytesRefsFromDocValues
54-
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count())) {
54+
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count() - offset)) {
5555
for (int i = offset; i < docs.count(); i++) {
5656
read(docs.get(i), builder);
5757
}

server/src/main/java/org/elasticsearch/index/mapper/KeywordScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public int docId() {
5353
@Override
5454
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5555
// Note that we don't pre-sort our output so we can't use bytesRefsFromDocValues
56-
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count())) {
56+
try (BlockLoader.BytesRefBuilder builder = factory.bytesRefs(docs.count() - offset)) {
5757
for (int i = offset; i < docs.count(); i++) {
5858
read(docs.get(i), builder);
5959
}

server/src/main/java/org/elasticsearch/index/mapper/LongScriptBlockDocValuesReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public int docId() {
5151
@Override
5252
public BlockLoader.Block read(BlockLoader.BlockFactory factory, BlockLoader.Docs docs, int offset) throws IOException {
5353
// Note that we don't pre-sort our output so we can't use longsFromDocValues
54-
try (BlockLoader.LongBuilder builder = factory.longs(docs.count())) {
54+
try (BlockLoader.LongBuilder builder = factory.longs(docs.count() - offset)) {
5555
for (int i = offset; i < docs.count(); i++) {
5656
read(docs.get(i), builder);
5757
}

server/src/test/java/org/elasticsearch/index/mapper/BooleanScriptFieldTypeTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,8 @@ public void testBlockLoader() throws IOException {
446446
try (DirectoryReader reader = iw.getReader()) {
447447
BooleanScriptFieldType fieldType = build("xor_param", Map.of("param", false), OnScriptError.FAIL);
448448
List<Boolean> expected = List.of(false, true);
449-
assertThat(blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType), equalTo(expected));
449+
assertThat(blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType, 0), equalTo(expected));
450+
assertThat(blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType, 1), equalTo(expected.subList(1, 2)));
450451
assertThat(blockLoaderReadValuesFromRowStrideReader(reader, fieldType), equalTo(expected));
451452
}
452453
}

server/src/test/java/org/elasticsearch/index/mapper/DateScriptFieldTypeTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,10 @@ public void testBlockLoader() throws IOException {
493493
try (DirectoryReader reader = iw.getReader()) {
494494
DateScriptFieldType fieldType = build("add_days", Map.of("days", 1), OnScriptError.FAIL);
495495
assertThat(
496-
blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType),
496+
blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType, 0),
497497
equalTo(List.of(1595518581354L, 1595518581355L))
498498
);
499+
assertThat(blockLoaderReadValuesFromColumnAtATimeReader(reader, fieldType, 1), equalTo(List.of(1595518581355L)));
499500
assertThat(blockLoaderReadValuesFromRowStrideReader(reader, fieldType), equalTo(List.of(1595518581354L, 1595518581355L)));
500501
}
501502
}

0 commit comments

Comments
 (0)