From 0c116aa59293310badba5dd5d8189bed895e119f Mon Sep 17 00:00:00 2001 From: Julian Kiryakov Date: Thu, 12 Mar 2026 12:56:36 -0400 Subject: [PATCH 1/2] Fix release build failures --- .../single_node/PushExpressionToLoadIT.java | 66 ++++++++----------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java b/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java index 0bdfdb4f838a1..50d545889a815 100644 --- a/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java +++ b/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java @@ -442,21 +442,14 @@ public void testLengthPushedWithTopN() throws IOException { matchesList().item(matchesMap().entry("name", "test").entry("type", any(String.class))), Map.of( "data", - Build.current().isSnapshot() - ? List.of(matchesMap().entry("ordering:column_at_a_time:IntsFromDocValues.Singleton", 1)) - : List.of( - matchesMap().entry("ordering:column_at_a_time:IntsFromDocValues.Singleton", 1) - .entry("test:column_at_a_time:BytesRefsFromOrds.Singleton", 1) - ), + List.of(matchesMap().entry("ordering:column_at_a_time:IntsFromDocValues.Singleton", 1)), "node_reduce", - Build.current().isSnapshot() - ? List.of( - // Pushed down function - matchesMap().entry("test:column_at_a_time:Utf8CodePointsFromOrds.Singleton", 1), - // Field - matchesMap().entry("test:column_at_a_time:BytesRefsFromOrds.Singleton", 1) - ) - : List.of(matchesMap().entry("test:row_stride:BytesRefsFromOrds.Singleton", 1)) + List.of( + // Pushed down function + matchesMap().entry("test:column_at_a_time:Utf8CodePointsFromOrds.Singleton", 1), + // Field + matchesMap().entry("test:column_at_a_time:BytesRefsFromOrds.Singleton", 1) + ) ), sig -> assertMap( sig, @@ -514,25 +507,21 @@ public void testLengthPushedWithTopNAsOrder() throws IOException { */ public void testLengthNotPushedToLookupJoinKeyword() throws IOException { initLookupIndex(); - test( - b -> b.startObject("main_matching").field("type", "keyword").endObject(), - b -> b.field("main_matching", "lookup"), - """ - | LOOKUP JOIN lookup ON matching == main_matching - | EVAL test = LENGTH(test) - """, - matchesList().item(1), - matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), - sig -> assertMap( + test(b -> b.startObject("main_matching").field("type", "keyword").endObject(), b -> b.field("main_matching", "lookup"), """ + | LOOKUP JOIN lookup ON matching == main_matching + | EVAL test = LENGTH(test) + """, matchesList().item(1), matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), sig -> { + String lookupOperator = Build.current().isSnapshot() ? "StreamingLookupOperator" : "LookupOperator"; + assertMap( sig, matchesList().item("LuceneSourceOperator") .item("ValuesSourceReaderOperator") // the real work is here, checkOperatorProfile checks the status - .item("StreamingLookupOperator") + .item(lookupOperator) .item("EvalOperator") // this one just renames the field .item("AggregationOperator") .item("ExchangeSinkOperator") - ) - ); + ); + }); } /** @@ -546,25 +535,22 @@ public void testLengthNotPushedToLookupJoinKeywordSameName() throws IOException test(b -> { b.startObject("test").field("type", "keyword").endObject(); b.startObject("main_matching").field("type", "keyword").endObject(); - }, - b -> b.field("test", value).field("main_matching", "lookup"), - """ - | DROP test - | LOOKUP JOIN lookup ON matching == main_matching - | EVAL test = LENGTH(test) - """, - matchesList().item(1), - matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), - sig -> assertMap( + }, b -> b.field("test", value).field("main_matching", "lookup"), """ + | DROP test + | LOOKUP JOIN lookup ON matching == main_matching + | EVAL test = LENGTH(test) + """, matchesList().item(1), matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), sig -> { + String lookupOperator = Build.current().isSnapshot() ? "StreamingLookupOperator" : "LookupOperator"; + assertMap( sig, matchesList().item("LuceneSourceOperator") .item("ValuesSourceReaderOperator") // the real work is here, checkOperatorProfile checks the status - .item("StreamingLookupOperator") + .item(lookupOperator) .item("EvalOperator") // this one just renames the field .item("AggregationOperator") .item("ExchangeSinkOperator") - ) - ); + ); + }); } /** From 3c021862910cb08438d76ead117f66fb48751f1f Mon Sep 17 00:00:00 2001 From: Julian Kiryakov Date: Thu, 12 Mar 2026 14:36:21 -0400 Subject: [PATCH 2/2] Address code review comments --- .../esql/qa/single_node/PushExpressionToLoadIT.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java b/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java index 50d545889a815..8afbab7537b6f 100644 --- a/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java +++ b/x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushExpressionToLoadIT.java @@ -511,12 +511,11 @@ public void testLengthNotPushedToLookupJoinKeyword() throws IOException { | LOOKUP JOIN lookup ON matching == main_matching | EVAL test = LENGTH(test) """, matchesList().item(1), matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), sig -> { - String lookupOperator = Build.current().isSnapshot() ? "StreamingLookupOperator" : "LookupOperator"; assertMap( sig, matchesList().item("LuceneSourceOperator") .item("ValuesSourceReaderOperator") // the real work is here, checkOperatorProfile checks the status - .item(lookupOperator) + .item(lookupOperatorName()) .item("EvalOperator") // this one just renames the field .item("AggregationOperator") .item("ExchangeSinkOperator") @@ -540,12 +539,11 @@ public void testLengthNotPushedToLookupJoinKeywordSameName() throws IOException | LOOKUP JOIN lookup ON matching == main_matching | EVAL test = LENGTH(test) """, matchesList().item(1), matchesMap().entry("main_matching:column_at_a_time:BytesRefsFromOrds.Singleton", 1), sig -> { - String lookupOperator = Build.current().isSnapshot() ? "StreamingLookupOperator" : "LookupOperator"; assertMap( sig, matchesList().item("LuceneSourceOperator") .item("ValuesSourceReaderOperator") // the real work is here, checkOperatorProfile checks the status - .item(lookupOperator) + .item(lookupOperatorName()) .item("EvalOperator") // this one just renames the field .item("AggregationOperator") .item("ExchangeSinkOperator") @@ -934,6 +932,10 @@ private void initLookupIndex() throws IOException { assertThat(entityToMap(bulkResponse.getEntity(), XContentType.JSON), matchesMap().entry("errors", false).extraOk()); } + private static String lookupOperatorName() { + return Build.current().isSnapshot() ? "StreamingLookupOperator" : "LookupOperator"; + } + private CheckedConsumer justType(String type) { return justType("test", type); }