diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/EvaluatorImplementer.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/EvaluatorImplementer.java index bba578f45f5b0..b2e0eb7ec2808 100644 --- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/EvaluatorImplementer.java +++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/EvaluatorImplementer.java @@ -95,25 +95,31 @@ private TypeSpec type() { processFunction.args.forEach(a -> a.declareField(builder)); builder.addField(DRIVER_CONTEXT, "driverContext", Modifier.PRIVATE, Modifier.FINAL); - builder.addField(WARNINGS, "warnings", Modifier.PRIVATE); + var hasFixedProcessFunctionArgs = processFunction.args.stream().anyMatch(x -> x instanceof FixedArgument == false); + var usesWarnings = processFunction.warnExceptions.isEmpty() == false || hasFixedProcessFunctionArgs && allNullsIsNull; + if (usesWarnings) { + builder.addField(WARNINGS, "warnings", Modifier.PRIVATE); + } builder.addMethod(ctor()); builder.addMethod(eval()); builder.addMethod(processFunction.baseRamBytesUsed()); if (processOutputsMultivalued) { - if (processFunction.args.stream().anyMatch(x -> x instanceof FixedArgument == false)) { + if (hasFixedProcessFunctionArgs) { builder.addMethod(realEval(true)); } } else { - if (processFunction.args.stream().anyMatch(x -> x instanceof FixedArgument == false)) { + if (hasFixedProcessFunctionArgs) { builder.addMethod(realEval(true)); } builder.addMethod(realEval(false)); } builder.addMethod(processFunction.toStringMethod(implementation)); builder.addMethod(processFunction.close()); - builder.addMethod(warnings()); + if (usesWarnings) { + builder.addMethod(warnings()); + } return builder.build(); } diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/date/NowEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/date/NowEvaluator.java index a5e1ac73bcd02..3e700804976e0 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/date/NowEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/date/NowEvaluator.java @@ -12,7 +12,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.xpack.esql.core.tree.Source; /** @@ -28,8 +27,6 @@ public final class NowEvaluator implements EvalOperator.ExpressionEvaluator { private final DriverContext driverContext; - private Warnings warnings; - public NowEvaluator(Source source, long now, DriverContext driverContext) { this.source = source; this.now = now; @@ -65,18 +62,6 @@ public String toString() { public void close() { } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source; diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBooleanEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBooleanEvaluator.java index 423bf0c22b09b..70f31da8e14ec 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBooleanEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBooleanEvaluator.java @@ -12,7 +12,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.core.Releasables; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -31,8 +30,6 @@ public final class MvContainsBooleanEvaluator implements EvalOperator.Expression private final DriverContext driverContext; - private Warnings warnings; - public MvContainsBooleanEvaluator(Source source, EvalOperator.ExpressionEvaluator superset, EvalOperator.ExpressionEvaluator subset, DriverContext driverContext) { this.source = source; @@ -78,18 +75,6 @@ public void close() { Releasables.closeExpectNoException(superset, subset); } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source; diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBytesRefEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBytesRefEvaluator.java index c614b9b28ad19..32601030c0b5c 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBytesRefEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsBytesRefEvaluator.java @@ -13,7 +13,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.core.Releasables; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -32,8 +31,6 @@ public final class MvContainsBytesRefEvaluator implements EvalOperator.Expressio private final DriverContext driverContext; - private Warnings warnings; - public MvContainsBytesRefEvaluator(Source source, EvalOperator.ExpressionEvaluator superset, EvalOperator.ExpressionEvaluator subset, DriverContext driverContext) { this.source = source; @@ -79,18 +76,6 @@ public void close() { Releasables.closeExpectNoException(superset, subset); } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source; diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsDoubleEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsDoubleEvaluator.java index e429a3c53abda..ade77c7f1c097 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsDoubleEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsDoubleEvaluator.java @@ -13,7 +13,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.core.Releasables; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -32,8 +31,6 @@ public final class MvContainsDoubleEvaluator implements EvalOperator.ExpressionE private final DriverContext driverContext; - private Warnings warnings; - public MvContainsDoubleEvaluator(Source source, EvalOperator.ExpressionEvaluator superset, EvalOperator.ExpressionEvaluator subset, DriverContext driverContext) { this.source = source; @@ -78,18 +75,6 @@ public void close() { Releasables.closeExpectNoException(superset, subset); } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source; diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsIntEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsIntEvaluator.java index 762ae0d190ac5..9fb876bff9156 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsIntEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsIntEvaluator.java @@ -13,7 +13,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.core.Releasables; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -32,8 +31,6 @@ public final class MvContainsIntEvaluator implements EvalOperator.ExpressionEval private final DriverContext driverContext; - private Warnings warnings; - public MvContainsIntEvaluator(Source source, EvalOperator.ExpressionEvaluator superset, EvalOperator.ExpressionEvaluator subset, DriverContext driverContext) { this.source = source; @@ -78,18 +75,6 @@ public void close() { Releasables.closeExpectNoException(superset, subset); } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source; diff --git a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsLongEvaluator.java b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsLongEvaluator.java index bac4892c07a12..c58efe18f9126 100644 --- a/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsLongEvaluator.java +++ b/x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/multivalue/MvContainsLongEvaluator.java @@ -13,7 +13,6 @@ import org.elasticsearch.compute.data.Page; import org.elasticsearch.compute.operator.DriverContext; import org.elasticsearch.compute.operator.EvalOperator; -import org.elasticsearch.compute.operator.Warnings; import org.elasticsearch.core.Releasables; import org.elasticsearch.xpack.esql.core.tree.Source; @@ -32,8 +31,6 @@ public final class MvContainsLongEvaluator implements EvalOperator.ExpressionEva private final DriverContext driverContext; - private Warnings warnings; - public MvContainsLongEvaluator(Source source, EvalOperator.ExpressionEvaluator superset, EvalOperator.ExpressionEvaluator subset, DriverContext driverContext) { this.source = source; @@ -78,18 +75,6 @@ public void close() { Releasables.closeExpectNoException(superset, subset); } - private Warnings warnings() { - if (warnings == null) { - this.warnings = Warnings.createWarnings( - driverContext.warningsMode(), - source.source().getLineNumber(), - source.source().getColumnNumber(), - source.text() - ); - } - return warnings; - } - static class Factory implements EvalOperator.ExpressionEvaluator.Factory { private final Source source;