Skip to content

Commit 2454d8c

Browse files
committed
Merge try elastic#1
1 parent ed88894 commit 2454d8c

7 files changed

+1068
-10
lines changed

server/src/main/java/org/elasticsearch/index/codec/tsdb/ES87TSDBDocValuesConsumer.java

+12-7
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import static org.elasticsearch.index.codec.tsdb.ES87TSDBDocValuesFormat.DIRECT_MONOTONIC_BLOCK_SHIFT;
4646
import static org.elasticsearch.index.codec.tsdb.ES87TSDBDocValuesFormat.SORTED_SET;
4747

48-
final class ES87TSDBDocValuesConsumer extends DocValuesConsumer {
48+
class ES87TSDBDocValuesConsumer extends DocValuesConsumer {
4949

5050
IndexOutput data, meta;
5151
final int maxDoc;
@@ -98,14 +98,19 @@ public SortedNumericDocValues getSortedNumeric(FieldInfo field) throws IOExcepti
9898
private long[] writeField(FieldInfo field, DocValuesProducer valuesProducer, long maxOrd) throws IOException {
9999
int numDocsWithValue = 0;
100100
long numValues = 0;
101-
102101
SortedNumericDocValues values = valuesProducer.getSortedNumeric(field);
103-
for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
104-
numDocsWithValue++;
105-
final int count = values.docValueCount();
106-
numValues += count;
102+
if (values instanceof WithDocValuesCount wc) {
103+
numDocsWithValue = wc.numDocsWithValues();
104+
numValues = wc.totalValuesCount();
105+
} else if (DocValues.unwrapSingleton(values) instanceof WithDocValuesCount wc) {
106+
numDocsWithValue = wc.numDocsWithValues();
107+
numValues = wc.totalValuesCount();
108+
} else {
109+
for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
110+
numDocsWithValue++;
111+
numValues += values.docValueCount();
112+
}
107113
}
108-
109114
if (numDocsWithValue == 0) { // meta[-2, 0]: No documents with values
110115
meta.writeLong(-2); // docsWithFieldOffset
111116
meta.writeLong(0L); // docsWithFieldLength

server/src/main/java/org/elasticsearch/index/codec/tsdb/ES87TSDBDocValuesFormat.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public ES87TSDBDocValuesFormat() {
4848

4949
@Override
5050
public DocValuesConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
51-
return new ES87TSDBDocValuesConsumer(state, DATA_CODEC, DATA_EXTENSION, META_CODEC, META_EXTENSION);
51+
return new ES87TSDBDocValuesMerger(state, DATA_CODEC, DATA_EXTENSION, META_CODEC, META_EXTENSION);
5252
}
5353

5454
@Override

0 commit comments

Comments
 (0)