Skip to content

Commit 1d12813

Browse files
committed
add assertion
1 parent 89f01ed commit 1d12813

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,29 @@ public SortedNumericDocValues getSortedNumeric(FieldInfo field) throws IOExcepti
124124
writeField(field, producer, -1, null);
125125
}
126126

127+
private static boolean assertNumDocsWithValueAndNumValues(
128+
long numValuesFromStats,
129+
int numDocsWithValueFromStats,
130+
FieldInfo field,
131+
TsdbDocValuesProducer valuesProducer
132+
) throws IOException {
133+
long actualNumValues = 0;
134+
int actualNumDocsWithValue = 0;
135+
var values = valuesProducer.getSortedNumeric(field);
136+
for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
137+
actualNumDocsWithValue++;
138+
final int count = values.docValueCount();
139+
actualNumValues += count;
140+
}
141+
142+
assert actualNumDocsWithValue == numDocsWithValueFromStats
143+
: "expected[" + numDocsWithValueFromStats + ", but got [" + actualNumDocsWithValue + "]";
144+
assert actualNumValues == numValuesFromStats
145+
: "expected[" + numValuesFromStats + ", but got [" + actualNumValues + "]";
146+
147+
return true;
148+
}
149+
127150
private long[] writeField(FieldInfo field, TsdbDocValuesProducer valuesProducer, long maxOrd, OffsetsAccumulator offsetsAccumulator)
128151
throws IOException {
129152
int numDocsWithValue = 0;
@@ -133,6 +156,7 @@ private long[] writeField(FieldInfo field, TsdbDocValuesProducer valuesProducer,
133156
if (valuesProducer.mergeStats.supported()) {
134157
numDocsWithValue = valuesProducer.mergeStats.sumNumDocsWithField();
135158
numValues = valuesProducer.mergeStats.sumNumValues();
159+
assert assertNumDocsWithValueAndNumValues(numValues, numDocsWithValue, field, valuesProducer);
136160
} else {
137161
values = valuesProducer.getSortedNumeric(field);
138162
for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {

0 commit comments

Comments
 (0)