Skip to content

Commit 6975e85

Browse files
ES|QL: Compatibility checks for backport of #112008 and #111447 (#112866)
1 parent 49dcc16 commit 6975e85

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ static TransportVersion def(int id) {
171171
public static final TransportVersion ML_INFERENCE_AMAZON_BEDROCK_ADDED = def(8_702_00_0);
172172
public static final TransportVersion ENTERPRISE_GEOIP_DOWNLOADER_BACKPORT_8_15 = def(8_702_00_1);
173173
public static final TransportVersion FIX_VECTOR_SIMILARITY_INNER_HITS_BACKPORT_8_15 = def(8_702_00_2);
174+
/**
175+
* we made a single backport for ESQL_ES_FIELD_CACHED_SERIALIZATION and ESQL_ATTRIBUTE_CACHED_SERIALIZATION
176+
* with only one TransportVersion entry
177+
*/
178+
public static final TransportVersion ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15 = def(8_702_00_3);
174179
public static final TransportVersion ML_INFERENCE_DONT_DELETE_WHEN_SEMANTIC_TEXT_EXISTS = def(8_703_00_0);
175180
public static final TransportVersion INFERENCE_ADAPTIVE_ALLOCATIONS = def(8_704_00_0);
176181
public static final TransportVersion INDEX_REQUEST_UPDATE_BY_SCRIPT_ORIGIN = def(8_705_00_0);

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/UnsupportedAttribute.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,9 @@ private UnsupportedAttribute(StreamInput in) throws IOException {
7878
Source.readFrom((PlanStreamInput) in),
7979
in.readString(),
8080
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)
81-
? EsField.readFrom(in)
82-
: new UnsupportedEsField(in),
81+
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)
82+
? EsField.readFrom(in)
83+
: new UnsupportedEsField(in),
8384
in.readOptionalString(),
8485
NameId.readFrom((PlanStreamInput) in)
8586
);
@@ -90,7 +91,8 @@ public void writeTo(StreamOutput out) throws IOException {
9091
if (((PlanStreamOutput) out).writeAttributeCacheHeader(this)) {
9192
Source.EMPTY.writeTo(out);
9293
out.writeString(name());
93-
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)) {
94+
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)
95+
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)) {
9496
field().writeTo(out);
9597
} else {
9698
field().writeContent(out);

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/io/stream/PlanStreamInput.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ public NameId mapNameId(long l) {
219219
@Override
220220
@SuppressWarnings("unchecked")
221221
public <A extends Attribute> A readAttributeWithCache(CheckedFunction<StreamInput, A, IOException> constructor) throws IOException {
222-
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION)) {
222+
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION)
223+
|| getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)) {
223224
// it's safe to cast to int, since the max value for this is {@link PlanStreamOutput#MAX_SERIALIZED_ATTRIBUTES}
224225
int cacheId = Math.toIntExact(readZLong());
225226
if (cacheId < 0) {
@@ -257,7 +258,8 @@ private void cacheAttribute(int id, Attribute attr) {
257258

258259
@SuppressWarnings("unchecked")
259260
public <A extends EsField> A readEsFieldWithCache() throws IOException {
260-
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)) {
261+
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)
262+
|| getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)) {
261263
// it's safe to cast to int, since the max value for this is {@link PlanStreamOutput#MAX_SERIALIZED_ATTRIBUTES}
262264
int cacheId = Math.toIntExact(readZLong());
263265
if (cacheId < 0) {

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/io/stream/PlanStreamOutput.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ public void writeCachedBlock(Block block) throws IOException {
182182

183183
@Override
184184
public boolean writeAttributeCacheHeader(Attribute attribute) throws IOException {
185-
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION)) {
185+
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION)
186+
|| getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)) {
186187
Integer cacheId = attributeIdFromCache(attribute);
187188
if (cacheId != null) {
188189
writeZLong(cacheId);
@@ -213,7 +214,8 @@ private int cacheAttribute(Attribute attr) {
213214

214215
@Override
215216
public boolean writeEsFieldCacheHeader(EsField field) throws IOException {
216-
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)) {
217+
if (getTransportVersion().onOrAfter(TransportVersions.ESQL_ES_FIELD_CACHED_SERIALIZATION)
218+
|| getTransportVersion().isPatchFrom(TransportVersions.ESQL_ATTRIBUTE_CACHED_SERIALIZATION_8_15)) {
217219
Integer cacheId = esFieldIdFromCache(field);
218220
if (cacheId != null) {
219221
writeZLong(cacheId);

0 commit comments

Comments
 (0)