Skip to content

Commit ef24c12

Browse files
committed
Fix backward compatibility
Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
1 parent a25b8b8 commit ef24c12

File tree

1 file changed

+44
-39
lines changed

1 file changed

+44
-39
lines changed

server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java

+44-39
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,6 @@ public SearchSourceBuilder(StreamInput in) throws IOException {
254254
if (in.readBoolean()) {
255255
scriptFields = in.readList(ScriptField::new);
256256
}
257-
if (in.readBoolean()) {
258-
derivedFieldsObject = in.readMap();
259-
}
260-
if (in.readBoolean()) {
261-
derivedFields = in.readList(DerivedField::new);
262-
}
263257
size = in.readVInt();
264258
if (in.readBoolean()) {
265259
int size = in.readVInt();
@@ -295,6 +289,14 @@ public SearchSourceBuilder(StreamInput in) throws IOException {
295289
if (in.getVersion().onOrAfter(Version.V_2_13_0)) {
296290
includeNamedQueriesScore = in.readOptionalBoolean();
297291
}
292+
if (in.getVersion().onOrAfter(Version.V_2_13_1)) {
293+
if (in.readBoolean()) {
294+
derivedFieldsObject = in.readMap();
295+
}
296+
if (in.readBoolean()) {
297+
derivedFields = in.readList(DerivedField::new);
298+
}
299+
}
298300
}
299301

300302
@Override
@@ -323,16 +325,6 @@ public void writeTo(StreamOutput out) throws IOException {
323325
if (hasScriptFields) {
324326
out.writeList(scriptFields);
325327
}
326-
boolean hasDerivedFieldsObject = derivedFieldsObject != null;
327-
out.writeBoolean(hasDerivedFieldsObject);
328-
if (hasDerivedFieldsObject) {
329-
out.writeMap(derivedFieldsObject);
330-
}
331-
boolean hasDerivedFields = derivedFields != null;
332-
out.writeBoolean(hasDerivedFields);
333-
if (hasDerivedFields) {
334-
out.writeList(derivedFields);
335-
}
336328
out.writeVInt(size);
337329
boolean hasSorts = sorts != null;
338330
out.writeBoolean(hasSorts);
@@ -373,6 +365,18 @@ public void writeTo(StreamOutput out) throws IOException {
373365
if (out.getVersion().onOrAfter(Version.V_2_13_0)) {
374366
out.writeOptionalBoolean(includeNamedQueriesScore);
375367
}
368+
if (out.getVersion().onOrAfter(Version.V_2_13_1)) {
369+
boolean hasDerivedFieldsObject = derivedFieldsObject != null;
370+
out.writeBoolean(hasDerivedFieldsObject);
371+
if (hasDerivedFieldsObject) {
372+
out.writeMap(derivedFieldsObject);
373+
}
374+
boolean hasDerivedFields = derivedFields != null;
375+
out.writeBoolean(hasDerivedFields);
376+
if (hasDerivedFields) {
377+
out.writeList(derivedFields);
378+
}
379+
}
376380
}
377381

378382
/**
@@ -1164,8 +1168,6 @@ private SearchSourceBuilder shallowCopy(
11641168
rewrittenBuilder.queryBuilder = queryBuilder;
11651169
rewrittenBuilder.rescoreBuilders = rescoreBuilders;
11661170
rewrittenBuilder.scriptFields = scriptFields;
1167-
rewrittenBuilder.derivedFieldsObject = derivedFieldsObject;
1168-
rewrittenBuilder.derivedFields = derivedFields;
11691171
rewrittenBuilder.searchAfterBuilder = searchAfterBuilder;
11701172
rewrittenBuilder.sliceBuilder = slice;
11711173
rewrittenBuilder.size = size;
@@ -1181,6 +1183,8 @@ private SearchSourceBuilder shallowCopy(
11811183
rewrittenBuilder.seqNoAndPrimaryTerm = seqNoAndPrimaryTerm;
11821184
rewrittenBuilder.collapse = collapse;
11831185
rewrittenBuilder.pointInTimeBuilder = pointInTimeBuilder;
1186+
rewrittenBuilder.derivedFieldsObject = derivedFieldsObject;
1187+
rewrittenBuilder.derivedFields = derivedFields;
11841188
return rewrittenBuilder;
11851189
}
11861190

@@ -1267,8 +1271,6 @@ public void parseXContent(XContentParser parser, boolean checkTrailingTokens) th
12671271
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
12681272
scriptFields.add(new ScriptField(parser));
12691273
}
1270-
} else if (DERIVED_FIELDS_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
1271-
derivedFieldsObject = parser.map();
12721274
} else if (INDICES_BOOST_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
12731275
deprecationLogger.deprecate(
12741276
"indices_boost_object_format",
@@ -1330,6 +1332,8 @@ public void parseXContent(XContentParser parser, boolean checkTrailingTokens) th
13301332
pointInTimeBuilder = PointInTimeBuilder.fromXContent(parser);
13311333
} else if (SEARCH_PIPELINE.match(currentFieldName, parser.getDeprecationHandler())) {
13321334
searchPipelineSource = parser.mapOrdered();
1335+
} else if (DERIVED_FIELDS_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
1336+
derivedFieldsObject = parser.map();
13331337
} else {
13341338
throw new ParsingException(
13351339
parser.getTokenLocation(),
@@ -1483,19 +1487,6 @@ public XContentBuilder innerToXContent(XContentBuilder builder, Params params) t
14831487
builder.endObject();
14841488
}
14851489

1486-
if (derivedFieldsObject != null || derivedFields != null) {
1487-
builder.startObject(DERIVED_FIELDS_FIELD.getPreferredName());
1488-
if (derivedFieldsObject != null) {
1489-
builder.map(derivedFieldsObject);
1490-
}
1491-
if (derivedFields != null) {
1492-
for (DerivedField derivedField : derivedFields) {
1493-
derivedField.toXContent(builder, params);
1494-
}
1495-
}
1496-
builder.endObject();
1497-
}
1498-
14991490
if (sorts != null) {
15001491
builder.startArray(SORT_FIELD.getPreferredName());
15011492
for (SortBuilder<?> sort : sorts) {
@@ -1575,6 +1566,20 @@ public XContentBuilder innerToXContent(XContentBuilder builder, Params params) t
15751566
if (searchPipelineSource != null) {
15761567
builder.field(SEARCH_PIPELINE.getPreferredName(), searchPipelineSource);
15771568
}
1569+
1570+
if (derivedFieldsObject != null || derivedFields != null) {
1571+
builder.startObject(DERIVED_FIELDS_FIELD.getPreferredName());
1572+
if (derivedFieldsObject != null) {
1573+
builder.map(derivedFieldsObject);
1574+
}
1575+
if (derivedFields != null) {
1576+
for (DerivedField derivedField : derivedFields) {
1577+
derivedField.toXContent(builder, params);
1578+
}
1579+
}
1580+
builder.endObject();
1581+
}
1582+
15781583
return builder;
15791584
}
15801585

@@ -1834,8 +1839,6 @@ public int hashCode() {
18341839
queryBuilder,
18351840
rescoreBuilders,
18361841
scriptFields,
1837-
derivedFieldsObject,
1838-
derivedFields,
18391842
size,
18401843
sorts,
18411844
searchAfterBuilder,
@@ -1852,7 +1855,9 @@ public int hashCode() {
18521855
extBuilders,
18531856
collapse,
18541857
trackTotalHitsUpTo,
1855-
pointInTimeBuilder
1858+
pointInTimeBuilder,
1859+
derivedFieldsObject,
1860+
derivedFields
18561861
);
18571862
}
18581863

@@ -1879,8 +1884,6 @@ public boolean equals(Object obj) {
18791884
&& Objects.equals(queryBuilder, other.queryBuilder)
18801885
&& Objects.equals(rescoreBuilders, other.rescoreBuilders)
18811886
&& Objects.equals(scriptFields, other.scriptFields)
1882-
&& Objects.equals(derivedFieldsObject, other.derivedFieldsObject)
1883-
&& Objects.equals(derivedFields, other.derivedFields)
18841887
&& Objects.equals(size, other.size)
18851888
&& Objects.equals(sorts, other.sorts)
18861889
&& Objects.equals(searchAfterBuilder, other.searchAfterBuilder)
@@ -1897,7 +1900,9 @@ public boolean equals(Object obj) {
18971900
&& Objects.equals(extBuilders, other.extBuilders)
18981901
&& Objects.equals(collapse, other.collapse)
18991902
&& Objects.equals(trackTotalHitsUpTo, other.trackTotalHitsUpTo)
1900-
&& Objects.equals(pointInTimeBuilder, other.pointInTimeBuilder);
1903+
&& Objects.equals(pointInTimeBuilder, other.pointInTimeBuilder)
1904+
&& Objects.equals(derivedFieldsObject, other.derivedFieldsObject)
1905+
&& Objects.equals(derivedFields, other.derivedFields);
19011906
}
19021907

19031908
@Override

0 commit comments

Comments
 (0)