Skip to content

Commit e91a01b

Browse files
nik9000mridula-s109
authored andcommitted
ESQL: Prepare for backport of documents_found (elastic#130039)
Prepares the `main` branch for the backport of elastic#125631. Specifically, this adds the version constant for 8.19 to main and the serialization code that lets main talk to 8.19.
1 parent dfc22e8 commit e91a01b

File tree

7 files changed

+39
-11
lines changed

7 files changed

+39
-11
lines changed

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ static TransportVersion def(int id) {
208208
public static final TransportVersion SPARSE_VECTOR_FIELD_PRUNING_OPTIONS_8_19 = def(8_841_0_58);
209209
public static final TransportVersion ML_INFERENCE_ELASTIC_DENSE_TEXT_EMBEDDINGS_ADDED_8_19 = def(8_841_0_59);
210210
public static final TransportVersion ML_INFERENCE_COHERE_API_VERSION_8_19 = def(8_841_0_60);
211+
public static final TransportVersion ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19 = def(8_841_0_61);
211212
public static final TransportVersion V_9_0_0 = def(9_000_0_09);
212213
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0_1 = def(9_000_0_10);
213214
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0_2 = def(9_000_0_11);

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/lucene/ValuesSourceReaderOperator.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.apache.lucene.index.LeafReaderContext;
1212
import org.apache.lucene.index.SortedDocValues;
1313
import org.apache.lucene.util.BytesRef;
14+
import org.elasticsearch.TransportVersion;
1415
import org.elasticsearch.common.Strings;
1516
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
1617
import org.elasticsearch.common.io.stream.StreamInput;
@@ -47,6 +48,7 @@
4748
import java.util.function.Supplier;
4849

4950
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED;
51+
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19;
5052

5153
/**
5254
* Operator that extracts doc_values from a Lucene index out of pages that have been produced by {@link LuceneSourceOperator}
@@ -617,18 +619,23 @@ public static class Status extends AbstractPageMappingOperator.Status {
617619
Status(StreamInput in) throws IOException {
618620
super(in);
619621
readersBuilt = in.readOrderedMap(StreamInput::readString, StreamInput::readVInt);
620-
valuesLoaded = in.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED) ? in.readVLong() : 0;
622+
valuesLoaded = supportsValuesLoaded(in.getTransportVersion()) ? in.readVLong() : 0;
621623
}
622624

623625
@Override
624626
public void writeTo(StreamOutput out) throws IOException {
625627
super.writeTo(out);
626628
out.writeMap(readersBuilt, StreamOutput::writeVInt);
627-
if (out.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
629+
if (supportsValuesLoaded(out.getTransportVersion())) {
628630
out.writeVLong(valuesLoaded);
629631
}
630632
}
631633

634+
private static boolean supportsValuesLoaded(TransportVersion version) {
635+
return version.onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)
636+
|| version.isPatchFrom(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19);
637+
}
638+
632639
@Override
633640
public String getWriteableName() {
634641
return ENTRY.name;

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlQueryResponse.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package org.elasticsearch.xpack.esql.action;
99

10+
import org.elasticsearch.TransportVersion;
1011
import org.elasticsearch.TransportVersions;
1112
import org.elasticsearch.common.Strings;
1213
import org.elasticsearch.common.collect.Iterators;
@@ -37,6 +38,7 @@
3738
import java.util.Optional;
3839

3940
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED;
41+
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19;
4042

4143
public class EsqlQueryResponse extends org.elasticsearch.xpack.core.esql.action.EsqlQueryResponse
4244
implements
@@ -120,8 +122,8 @@ static EsqlQueryResponse deserialize(BlockStreamInput in) throws IOException {
120122
}
121123
List<ColumnInfoImpl> columns = in.readCollectionAsList(ColumnInfoImpl::new);
122124
List<Page> pages = in.readCollectionAsList(Page::new);
123-
long documentsFound = in.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED) ? in.readVLong() : 0;
124-
long valuesLoaded = in.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED) ? in.readVLong() : 0;
125+
long documentsFound = supportsValuesLoaded(in.getTransportVersion()) ? in.readVLong() : 0;
126+
long valuesLoaded = supportsValuesLoaded(in.getTransportVersion()) ? in.readVLong() : 0;
125127
if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) {
126128
profile = in.readOptionalWriteable(Profile::readFrom);
127129
}
@@ -153,7 +155,7 @@ public void writeTo(StreamOutput out) throws IOException {
153155
}
154156
out.writeCollection(columns);
155157
out.writeCollection(pages);
156-
if (out.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
158+
if (supportsValuesLoaded(out.getTransportVersion())) {
157159
out.writeVLong(documentsFound);
158160
out.writeVLong(valuesLoaded);
159161
}
@@ -166,6 +168,11 @@ public void writeTo(StreamOutput out) throws IOException {
166168
}
167169
}
168170

171+
private static boolean supportsValuesLoaded(TransportVersion version) {
172+
return version.onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)
173+
|| version.isPatchFrom(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19);
174+
}
175+
169176
public List<ColumnInfoImpl> columns() {
170177
return columns;
171178
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/ComputeResponse.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package org.elasticsearch.xpack.esql.plugin;
99

10+
import org.elasticsearch.TransportVersion;
1011
import org.elasticsearch.TransportVersions;
1112
import org.elasticsearch.action.search.ShardSearchFailure;
1213
import org.elasticsearch.common.io.stream.StreamInput;
@@ -20,6 +21,7 @@
2021
import java.util.List;
2122

2223
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED;
24+
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19;
2325

2426
/**
2527
* The compute result of {@link DataNodeRequest} or {@link ClusterComputeRequest}
@@ -58,7 +60,7 @@ final class ComputeResponse extends TransportResponse {
5860
}
5961

6062
ComputeResponse(StreamInput in) throws IOException {
61-
if (in.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
63+
if (supportsCompletionInfo(in.getTransportVersion())) {
6264
completionInfo = DriverCompletionInfo.readFrom(in);
6365
} else if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) {
6466
if (in.readBoolean()) {
@@ -92,7 +94,7 @@ final class ComputeResponse extends TransportResponse {
9294

9395
@Override
9496
public void writeTo(StreamOutput out) throws IOException {
95-
if (out.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
97+
if (supportsCompletionInfo(out.getTransportVersion())) {
9698
completionInfo.writeTo(out);
9799
} else if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) {
98100
out.writeBoolean(true);
@@ -111,6 +113,11 @@ public void writeTo(StreamOutput out) throws IOException {
111113
}
112114
}
113115

116+
private static boolean supportsCompletionInfo(TransportVersion version) {
117+
return version.onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)
118+
|| version.isPatchFrom(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19);
119+
}
120+
114121
public DriverCompletionInfo getCompletionInfo() {
115122
return completionInfo;
116123
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/DataNodeComputeResponse.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package org.elasticsearch.xpack.esql.plugin;
99

10+
import org.elasticsearch.TransportVersion;
1011
import org.elasticsearch.common.io.stream.StreamInput;
1112
import org.elasticsearch.common.io.stream.StreamOutput;
1213
import org.elasticsearch.compute.operator.DriverCompletionInfo;
@@ -19,6 +20,7 @@
1920
import java.util.Map;
2021

2122
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED;
23+
import static org.elasticsearch.TransportVersions.ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19;
2224

2325
/**
2426
* The compute result of {@link DataNodeRequest}
@@ -33,7 +35,7 @@ final class DataNodeComputeResponse extends TransportResponse {
3335
}
3436

3537
DataNodeComputeResponse(StreamInput in) throws IOException {
36-
if (in.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
38+
if (supportsCompletionInfo(in.getTransportVersion())) {
3739
this.completionInfo = DriverCompletionInfo.readFrom(in);
3840
this.shardLevelFailures = in.readMap(ShardId::new, StreamInput::readException);
3941
return;
@@ -49,7 +51,7 @@ final class DataNodeComputeResponse extends TransportResponse {
4951

5052
@Override
5153
public void writeTo(StreamOutput out) throws IOException {
52-
if (out.getTransportVersion().onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)) {
54+
if (supportsCompletionInfo(out.getTransportVersion())) {
5355
completionInfo.writeTo(out);
5456
out.writeMap(shardLevelFailures, (o, v) -> v.writeTo(o), StreamOutput::writeException);
5557
return;
@@ -65,6 +67,11 @@ public void writeTo(StreamOutput out) throws IOException {
6567
new ComputeResponse(completionInfo).writeTo(out);
6668
}
6769

70+
private static boolean supportsCompletionInfo(TransportVersion version) {
71+
return version.onOrAfter(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED)
72+
|| version.isPatchFrom(ESQL_DOCUMENTS_FOUND_AND_VALUES_LOADED_8_19);
73+
}
74+
6875
public DriverCompletionInfo completionInfo() {
6976
return completionInfo;
7077
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/TransportEsqlQueryAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ private EsqlQueryResponse toResponse(Task task, EsqlQueryRequest request, Config
349349
columns,
350350
result.pages(),
351351
result.completionInfo().documentsFound(),
352-
result.completionInfo().documentsFound(),
352+
result.completionInfo().valuesLoaded(),
353353
profile,
354354
request.columnar(),
355355
asyncExecutionId,

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/action/EsqlQueryResponseTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,6 @@ protected EsqlQueryResponse mutateInstance(EsqlQueryResponse instance) {
312312
}
313313
default -> throw new IllegalArgumentException();
314314
}
315-
;
316315
return new EsqlQueryResponse(columns, pages, documentsFound, valuesLoaded, profile, columnar, isAsync, executionInfo);
317316
}
318317

0 commit comments

Comments
 (0)