Skip to content

Commit d212682

Browse files
committed
DocValuesConsumerUtil tweak
Be more strict about not finding a metadata entry based on field info number. If this were to happen, then this can cause issues in doc value consumer. However as far as I understand it, the field info number should stay consistent.
1 parent 89f01ed commit d212682

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

server/src/main/java/org/elasticsearch/index/codec/tsdb/es819/DocValuesConsumerUtil.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,29 @@ static MergeStats compatibleWithOptimizedMerge(boolean optimizedMergeEnabled, Me
6060
if (entry != null) {
6161
sumNumValues += entry.numValues;
6262
sumNumDocsWithField += entry.numDocsWithField;
63+
} else {
64+
assert false : "unexpectedly got no entry for field [" + fieldInfo.number + "\\" + fieldInfo.name + "]";
65+
return UNSUPPORTED;
6366
}
6467
}
6568
case SORTED_NUMERIC -> {
6669
var entry = tsdbDocValuesProducer.sortedNumerics.get(fieldInfo.number);
6770
if (entry != null) {
6871
sumNumValues += entry.numValues;
6972
sumNumDocsWithField += entry.numDocsWithField;
73+
} else {
74+
assert false : "unexpectedly got no entry for field [" + fieldInfo.number + "\\" + fieldInfo.name + "]";
75+
return UNSUPPORTED;
7076
}
7177
}
7278
case SORTED -> {
7379
var entry = tsdbDocValuesProducer.sorted.get(fieldInfo.number);
7480
if (entry != null) {
7581
sumNumValues += entry.ordsEntry.numValues;
7682
sumNumDocsWithField += entry.ordsEntry.numDocsWithField;
83+
} else {
84+
assert false : "unexpectedly got no entry for field [" + fieldInfo.number + "\\" + fieldInfo.name + "]";
85+
return UNSUPPORTED;
7786
}
7887
}
7988
case SORTED_SET -> {
@@ -86,6 +95,9 @@ static MergeStats compatibleWithOptimizedMerge(boolean optimizedMergeEnabled, Me
8695
sumNumValues += entry.ordsEntry.numValues;
8796
sumNumDocsWithField += entry.ordsEntry.numDocsWithField;
8897
}
98+
} else {
99+
assert false : "unexpectedly got no entry for field [" + fieldInfo.number + "\\" + fieldInfo.name + "]";
100+
return UNSUPPORTED;
89101
}
90102
}
91103
case BINARY -> {
@@ -94,6 +106,9 @@ static MergeStats compatibleWithOptimizedMerge(boolean optimizedMergeEnabled, Me
94106
sumNumDocsWithField += entry.numDocsWithField;
95107
minLength = Math.min(minLength, entry.minLength);
96108
maxLength = Math.max(maxLength, entry.maxLength);
109+
} else {
110+
assert false : "unexpectedly got no entry for field [" + fieldInfo.number + "\\" + fieldInfo.name + "]";
111+
return UNSUPPORTED;
97112
}
98113
}
99114
default -> throw new IllegalStateException("unexpected doc values producer type: " + fieldInfo.getDocValuesType());

0 commit comments

Comments
 (0)