From 48fa432910f57b18ebdf395af0d9fdcf91c64b4a Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Tue, 28 Oct 2025 12:17:16 +0100 Subject: [PATCH 1/4] Adjust source with offsets --- .../xpack/esql/parser/LogicalPlanBuilder.java | 39 ++++++--------- .../xpack/esql/parser/PromqlParser.java | 10 ++-- .../esql/parser/promql/AbstractBuilder.java | 30 ++++++++++-- .../esql/parser/promql/ExpressionBuilder.java | 6 +-- .../esql/parser/promql/IdentifierBuilder.java | 4 ++ .../esql/parser/promql/ParsingUtils.java | 49 +++++++++++++++++++ .../esql/parser/promql/PromqlAstBuilder.java | 6 +-- .../promql/PromqlLogicalPlanBuilder.java | 7 ++- .../esql/parser/promql/PromqlAstTests.java | 3 +- 9 files changed, 110 insertions(+), 44 deletions(-) diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java index 1af81f236acdd..31b2f3656222f 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/LogicalPlanBuilder.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.esql.parser; import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.apache.lucene.util.BytesRef; import org.elasticsearch.Build; @@ -52,6 +53,7 @@ import org.elasticsearch.xpack.esql.expression.predicate.logical.Not; import org.elasticsearch.xpack.esql.expression.predicate.operator.comparison.Equals; import org.elasticsearch.xpack.esql.expression.predicate.operator.comparison.EsqlBinaryComparison; +import org.elasticsearch.xpack.esql.parser.promql.ParsingUtils; import org.elasticsearch.xpack.esql.plan.EsqlStatement; import org.elasticsearch.xpack.esql.plan.IndexPattern; import org.elasticsearch.xpack.esql.plan.QuerySetting; @@ -1194,28 +1196,28 @@ public PlanFactory visitPromqlCommand(EsqlBaseParser.PromqlCommandContext ctx) { // TODO: Perform type and value validation var queryCtx = ctx.promqlQueryPart(); + if (queryCtx == null || queryCtx.isEmpty()) { + throw new ParsingException(source, "PromQL expression cannot be empty"); + } - String promqlQuery = queryCtx == null || queryCtx.isEmpty() - ? StringUtils.EMPTY - // copy the query verbatim to avoid missing tokens interpreted by the enclosing lexer - : source(queryCtx.get(0).start, queryCtx.get(queryCtx.size() - 1).stop).text(); - - if (promqlQuery.isEmpty()) { + Token startToken = queryCtx.getFirst().start; + Token stopToken = queryCtx.getLast().stop; + // copy the query verbatim to avoid missing tokens interpreted by the enclosing lexer + String promqlQuery = source(startToken, stopToken).text(); + if (promqlQuery.isBlank()) { throw new ParsingException(source, "PromQL expression cannot be empty"); } - int promqlStartLine = source.source().getLineNumber(); - int promqlStartColumn = queryCtx != null && !queryCtx.isEmpty() - ? queryCtx.get(0).start.getCharPositionInLine() - : source.source().getColumnNumber(); + int promqlStartLine = startToken.getLine(); + int promqlStartColumn = startToken.getCharPositionInLine(); PromqlParser promqlParser = new PromqlParser(); LogicalPlan promqlPlan; try { // The existing PromqlParser is used to parse the inner query - promqlPlan = promqlParser.createStatement(promqlQuery); + promqlPlan = promqlParser.createStatement(promqlQuery, null, null, promqlStartLine, promqlStartColumn); } catch (ParsingException pe) { - throw getParsingException(pe, promqlStartLine, promqlStartColumn); + throw ParsingUtils.adjustParsingException(pe, promqlStartLine, promqlStartColumn); } return plan -> time != null @@ -1223,17 +1225,4 @@ public PlanFactory visitPromqlCommand(EsqlBaseParser.PromqlCommandContext ctx) { : new PromqlCommand(source, plan, promqlPlan, start, end, step); } - private static ParsingException getParsingException(ParsingException pe, int promqlStartLine, int promqlStartColumn) { - int adjustedLine = promqlStartLine + (pe.getLineNumber() - 1); - int adjustedColumn = (pe.getLineNumber() == 1 ? promqlStartColumn + pe.getColumnNumber() : pe.getColumnNumber()) - 1; - - ParsingException adjusted = new ParsingException( - pe.getErrorMessage(), - pe.getCause() instanceof Exception ? (Exception) pe.getCause() : null, - adjustedLine, - adjustedColumn - ); - adjusted.setStackTrace(pe.getStackTrace()); - return adjusted; - } } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/PromqlParser.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/PromqlParser.java index b6cc79e27555f..c7c81d79ceffd 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/PromqlParser.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/PromqlParser.java @@ -46,10 +46,10 @@ public class PromqlParser { * Parses an PromQL expression into execution plan */ public LogicalPlan createStatement(String query) { - return createStatement(query, null, null); + return createStatement(query, null, null, 0, 0); } - public LogicalPlan createStatement(String query, Instant start, Instant stop) { + public LogicalPlan createStatement(String query, Instant start, Instant stop, int startLine, int startColumn) { if (log.isDebugEnabled()) { log.debug("Parsing as expression: {}", query); } @@ -57,13 +57,15 @@ public LogicalPlan createStatement(String query, Instant start, Instant stop) { if (start == null) { start = Instant.now(UTC); } - return invokeParser(query, start, stop, PromqlBaseParser::singleStatement, PromqlAstBuilder::plan); + return invokeParser(query, start, stop, startLine, startColumn, PromqlBaseParser::singleStatement, PromqlAstBuilder::plan); } private T invokeParser( String query, Instant start, Instant stop, + int startLine, + int startColumn, Function parseFunction, BiFunction visitor ) { @@ -97,7 +99,7 @@ private T invokeParser( if (log.isTraceEnabled()) { log.trace("Parse tree: {}", tree.toStringTree()); } - return visitor.apply(new PromqlAstBuilder(start, stop), tree); + return visitor.apply(new PromqlAstBuilder(start, stop, startLine, startColumn), tree); } catch (StackOverflowError e) { throw new ParsingException( "PromQL statement is too large, causing stack overflow when generating the parsing tree: [{}]", diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/AbstractBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/AbstractBuilder.java index a5f8a9f37a3a7..efc577deaa4a5 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/AbstractBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/AbstractBuilder.java @@ -7,6 +7,8 @@ package org.elasticsearch.xpack.esql.parser.promql; +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -14,9 +16,14 @@ import org.elasticsearch.xpack.esql.parser.ParsingException; import org.elasticsearch.xpack.esql.parser.PromqlBaseParserBaseVisitor; -import static org.elasticsearch.xpack.esql.parser.ParserUtils.source; - class AbstractBuilder extends PromqlBaseParserBaseVisitor { + private final int startLine, startColumn; + + AbstractBuilder(int startLine, int startColumn) { + this.startLine = startLine; + this.startColumn = startColumn; + } + @Override public Object visit(ParseTree tree) { return ParserUtils.visit(super::visit, tree); @@ -25,7 +32,7 @@ public Object visit(ParseTree tree) { /** * Extracts the actual unescaped string (literal) value of a terminal node. */ - static String string(TerminalNode node) { + String string(TerminalNode node) { return node == null ? null : unquote(source(node)); } @@ -42,4 +49,21 @@ public Object visitTerminal(TerminalNode node) { Source source = source(node); throw new ParsingException(source, "Does not know how to handle {}", source.text()); } + + protected Source source(TerminalNode terminalNode) { + return ParsingUtils.adjustSource(ParserUtils.source(terminalNode), startLine, startColumn); + } + + protected Source source(ParserRuleContext parserRuleContext) { + return ParsingUtils.adjustSource(ParserUtils.source(parserRuleContext), startLine, startColumn); + } + + protected Source source(Token token) { + return ParsingUtils.adjustSource(ParserUtils.source(token), startLine, startColumn); + } + + protected Source source(Token start, Token stop) { + return ParsingUtils.adjustSource(ParserUtils.source(start, stop), startLine, startColumn); + } + } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ExpressionBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ExpressionBuilder.java index a68463361c3b5..dae09ce78835e 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ExpressionBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ExpressionBuilder.java @@ -47,7 +47,6 @@ import java.util.concurrent.TimeUnit; import static java.util.Collections.emptyList; -import static org.elasticsearch.xpack.esql.parser.ParserUtils.source; import static org.elasticsearch.xpack.esql.parser.ParserUtils.typedParsing; import static org.elasticsearch.xpack.esql.parser.ParserUtils.visitList; import static org.elasticsearch.xpack.esql.parser.PromqlBaseParser.AND; @@ -77,10 +76,11 @@ class ExpressionBuilder extends IdentifierBuilder { protected final Instant start, stop; ExpressionBuilder() { - this(null, null); + this(null, null, 0, 0); } - ExpressionBuilder(Instant start, Instant stop) { + ExpressionBuilder(Instant start, Instant stop, int startLine, int startColumn) { + super(startLine, startColumn); Instant now = null; if (start == null || stop == null) { now = DateUtils.nowWithMillisResolution().toInstant(); diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/IdentifierBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/IdentifierBuilder.java index be48ef7eaf4d8..e61ffaa3c1308 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/IdentifierBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/IdentifierBuilder.java @@ -11,6 +11,10 @@ abstract class IdentifierBuilder extends AbstractBuilder { + IdentifierBuilder(int startLine, int startColumn) { + super(startLine, startColumn); + } + @Override public String visitIdentifier(IdentifierContext ctx) { return ctx == null ? null : ctx.getText(); diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java index a3e5b76c24714..3b5d721476b0a 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java @@ -9,6 +9,7 @@ import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; +import org.elasticsearch.xpack.esql.core.tree.Location; import org.elasticsearch.xpack.esql.core.tree.Source; import org.elasticsearch.xpack.esql.parser.ParsingException; @@ -224,4 +225,52 @@ private static String fromRadix(Source source, char[] chars, int offset, int cou return String.valueOf(Character.toChars(code)); } + + /** + * Adjusts the location of the source by the line and column offsets. + * @see #adjustLocation(Location, int, int) + */ + public static Source adjustSource(Source source, int startLine, int startColumn) { + return new Source(adjustLocation(source.source(), startLine, startColumn), source.text()); + } + + /** + * Adjusts the location by the line and column offsets. + * The PromQL query inside the PROMQL command is parsed separately, + * so its line and column numbers need to be adjusted to match their + * position inside the full ES|QL query. + */ + public static Location adjustLocation(Location location, int startLine, int startColumn) { + return new Location( + adjustLine(location.getLineNumber(), startLine), + adjustColumn(location.getColumnNumber(), startColumn) + ); + } + + /** + * Adjusts the line and column numbers of the given {@code ParsingException} + * by the provided offsets. + * The PromQL query inside the PROMQL command is parsed separately, + * so its line and column numbers need to be adjusted to match their + * position inside the full ES|QL query. + */ + public static ParsingException adjustParsingException(ParsingException pe, int promqlStartLine, int promqlStartColumn) { + ParsingException adjusted = new ParsingException( + pe.getErrorMessage(), + pe.getCause() instanceof Exception ? (Exception) pe.getCause() : null, + adjustLine(pe.getLineNumber(), promqlStartLine), + adjustColumn(pe.getColumnNumber(), promqlStartColumn) + ); + adjusted.setStackTrace(pe.getStackTrace()); + return adjusted; + } + + private static int adjustLine(int lineNumber, int startLine) { + return lineNumber + startLine - 1; + } + + private static int adjustColumn(int columnNumber, int startColumn) { + // the column offset only applies to the first line of the PROMQL command + return columnNumber == 1 ? columnNumber + startColumn - 1 : columnNumber; + } } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstBuilder.java index 37bff9f8c1f23..977aace0af462 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstBuilder.java @@ -20,11 +20,11 @@ public class PromqlAstBuilder extends PromqlLogicalPlanBuilder { private int expressionDepth = 0; public PromqlAstBuilder() { - this(null, null); + this(null, null, 0, 0); } - public PromqlAstBuilder(Instant start, Instant stop) { - super(start, stop); + public PromqlAstBuilder(Instant start, Instant stop, int startLine, int startColumn) { + super(start, stop, startLine, startColumn); } public LogicalPlan plan(ParseTree ctx) { diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlLogicalPlanBuilder.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlLogicalPlanBuilder.java index c25713d966515..9586e1aa54bdf 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlLogicalPlanBuilder.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/PromqlLogicalPlanBuilder.java @@ -39,7 +39,6 @@ import static java.util.Collections.emptyList; import static org.elasticsearch.xpack.esql.expression.promql.function.FunctionType.ACROSS_SERIES_AGGREGATION; import static org.elasticsearch.xpack.esql.expression.promql.function.FunctionType.WITHIN_SERIES_AGGREGATION; -import static org.elasticsearch.xpack.esql.parser.ParserUtils.source; import static org.elasticsearch.xpack.esql.parser.ParserUtils.typedParsing; import static org.elasticsearch.xpack.esql.parser.ParserUtils.visitList; import static org.elasticsearch.xpack.esql.plan.logical.promql.selector.LabelMatcher.NAME; @@ -47,11 +46,11 @@ public class PromqlLogicalPlanBuilder extends ExpressionBuilder { PromqlLogicalPlanBuilder() { - this(null, null); + this(null, null, 0, 0); } - PromqlLogicalPlanBuilder(Instant start, Instant stop) { - super(start, stop); + PromqlLogicalPlanBuilder(Instant start, Instant stop, int startLine, int startColumn) { + super(start, stop, startLine, startColumn); } protected LogicalPlan plan(ParseTree ctx) { diff --git a/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstTests.java b/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstTests.java index 38889e13d38ea..991a013a9ad8a 100644 --- a/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstTests.java +++ b/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/parser/promql/PromqlAstTests.java @@ -12,7 +12,6 @@ import org.elasticsearch.xpack.esql.core.QlClientException; import org.elasticsearch.xpack.esql.parser.ParsingException; import org.elasticsearch.xpack.esql.parser.PromqlParser; -import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan; import java.util.List; @@ -31,7 +30,7 @@ public void testValidQueries() throws Exception { String q = line.v1(); try { PromqlParser parser = new PromqlParser(); - LogicalPlan plan = parser.createStatement(q, null, null); + parser.createStatement(q); } catch (ParsingException pe) { fail(format(null, "Error parsing line {}:{} '{}' [{}]", line.v2(), pe.getColumnNumber(), pe.getErrorMessage(), q)); } catch (Exception e) { From eea43dd49fc5aab0aa3c3997035aa8b2e38589aa Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Tue, 28 Oct 2025 13:30:23 +0000 Subject: [PATCH 2/4] [CI] Auto commit changes from spotless --- .../xpack/esql/optimizer/LogicalPlanOptimizer.java | 8 ++++---- .../xpack/esql/parser/promql/ParsingUtils.java | 5 +---- .../xpack/esql/plan/logical/promql/PromqlCommand.java | 6 +++--- .../optimizer/promql/PromqlLogicalPlanOptimizerTests.java | 2 -- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java index a25ccdc58cf27..a54d87336a663 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java @@ -117,10 +117,10 @@ public LogicalPlanOptimizer(LogicalOptimizerContext optimizerContext) { public LogicalPlan optimize(LogicalPlan verified) { var optimized = execute(verified); -// Failures failures = verifier.verify(optimized, verified.output()); -// if (failures.hasFailures()) { -// throw new VerificationException(failures); -// } + // Failures failures = verifier.verify(optimized, verified.output()); + // if (failures.hasFailures()) { + // throw new VerificationException(failures); + // } optimized.setOptimized(); return optimized; } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java index 3b5d721476b0a..b8ff72f5ecc8e 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/parser/promql/ParsingUtils.java @@ -241,10 +241,7 @@ public static Source adjustSource(Source source, int startLine, int startColumn) * position inside the full ES|QL query. */ public static Location adjustLocation(Location location, int startLine, int startColumn) { - return new Location( - adjustLine(location.getLineNumber(), startLine), - adjustColumn(location.getColumnNumber(), startColumn) - ); + return new Location(adjustLine(location.getLineNumber(), startLine), adjustColumn(location.getColumnNumber(), startColumn)); } /** diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/promql/PromqlCommand.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/promql/PromqlCommand.java index 64dbbbff5dbcc..6b549d980f63b 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/promql/PromqlCommand.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/logical/promql/PromqlCommand.java @@ -102,9 +102,9 @@ public int hashCode() { public boolean equals(Object obj) { if (super.equals(obj)) { - PromqlCommand other = (PromqlCommand) obj; - return Objects.equals(child(), other.child()) && Objects.equals(promqlPlan, other.promqlPlan); - } + PromqlCommand other = (PromqlCommand) obj; + return Objects.equals(child(), other.child()) && Objects.equals(promqlPlan, other.promqlPlan); + } return false; } diff --git a/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/promql/PromqlLogicalPlanOptimizerTests.java b/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/promql/PromqlLogicalPlanOptimizerTests.java index a6539c6189638..0bac9c8ba15e5 100644 --- a/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/promql/PromqlLogicalPlanOptimizerTests.java +++ b/x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/promql/PromqlLogicalPlanOptimizerTests.java @@ -9,7 +9,6 @@ import org.elasticsearch.TransportVersion; import org.elasticsearch.index.IndexMode; -import org.elasticsearch.transport.Transport; import org.elasticsearch.xpack.esql.EsqlTestUtils; import org.elasticsearch.xpack.esql.action.EsqlCapabilities; import org.elasticsearch.xpack.esql.analysis.Analyzer; @@ -23,7 +22,6 @@ import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan; import org.junit.BeforeClass; -import java.util.Collections; import java.util.Map; import static java.util.Collections.emptyMap; From 0bbb83fcd2f6365fe721aea41bccc8a1830c9835 Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Tue, 28 Oct 2025 14:49:53 +0100 Subject: [PATCH 3/4] Revert formatting change for comment --- .../xpack/esql/optimizer/LogicalPlanOptimizer.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java index a54d87336a663..a25ccdc58cf27 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java @@ -117,10 +117,10 @@ public LogicalPlanOptimizer(LogicalOptimizerContext optimizerContext) { public LogicalPlan optimize(LogicalPlan verified) { var optimized = execute(verified); - // Failures failures = verifier.verify(optimized, verified.output()); - // if (failures.hasFailures()) { - // throw new VerificationException(failures); - // } +// Failures failures = verifier.verify(optimized, verified.output()); +// if (failures.hasFailures()) { +// throw new VerificationException(failures); +// } optimized.setOptimized(); return optimized; } From f560876c0e36040139f56a678ebb353728d75049 Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Tue, 28 Oct 2025 13:57:13 +0000 Subject: [PATCH 4/4] [CI] Auto commit changes from spotless --- .../xpack/esql/optimizer/LogicalPlanOptimizer.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java index a25ccdc58cf27..a54d87336a663 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanOptimizer.java @@ -117,10 +117,10 @@ public LogicalPlanOptimizer(LogicalOptimizerContext optimizerContext) { public LogicalPlan optimize(LogicalPlan verified) { var optimized = execute(verified); -// Failures failures = verifier.verify(optimized, verified.output()); -// if (failures.hasFailures()) { -// throw new VerificationException(failures); -// } + // Failures failures = verifier.verify(optimized, verified.output()); + // if (failures.hasFailures()) { + // throw new VerificationException(failures); + // } optimized.setOptimized(); return optimized; }