Skip to content

Commit 3195811

Browse files
committed
Allow ESQL extra verifiers to access settings
1 parent 07f65e9 commit 3195811

File tree

9 files changed

+27
-172
lines changed

9 files changed

+27
-172
lines changed

x-pack/plugin/esql/qa/server/extra-checkers/build.gradle

Lines changed: 0 additions & 29 deletions
This file was deleted.

x-pack/plugin/esql/qa/server/extra-checkers/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/extra/ExtraCheckersIT.java

Lines changed: 0 additions & 80 deletions
This file was deleted.

x-pack/plugin/esql/qa/server/extra-checkers/src/main/java/org/elasticsearch/xpack/esql/qa/extra/DisallowCategorize.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

x-pack/plugin/esql/qa/server/extra-checkers/src/main/java/org/elasticsearch/xpack/esql/qa/extra/ExtraCheckersPlugin.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

x-pack/plugin/esql/qa/server/extra-checkers/src/main/resources/META-INF/services/org.elasticsearch.xpack.esql.analysis.Verifier$ExtraCheckers

Lines changed: 0 additions & 8 deletions
This file was deleted.

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Verifier.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package org.elasticsearch.xpack.esql.analysis;
99

10+
import org.elasticsearch.common.settings.Settings;
1011
import org.elasticsearch.license.XPackLicenseState;
1112
import org.elasticsearch.xpack.esql.LicenseAware;
1213
import org.elasticsearch.xpack.esql.capabilities.PostAnalysisPlanVerificationAware;
@@ -60,7 +61,7 @@ public interface ExtraCheckers {
6061
* Build a list of checks to perform on the plan. Each one is called once per
6162
* {@link LogicalPlan} node in the plan.
6263
*/
63-
List<BiConsumer<LogicalPlan, Failures>> extra();
64+
List<BiConsumer<LogicalPlan, Failures>> extra(Settings settings);
6465
}
6566

6667
/**
@@ -69,15 +70,17 @@ public interface ExtraCheckers {
6970
private final List<ExtraCheckers> extraCheckers;
7071
private final Metrics metrics;
7172
private final XPackLicenseState licenseState;
73+
private final Settings settings;
7274

7375
public Verifier(Metrics metrics, XPackLicenseState licenseState) {
74-
this(metrics, licenseState, Collections.emptyList());
76+
this(metrics, licenseState, Collections.emptyList(), Settings.EMPTY);
7577
}
7678

77-
public Verifier(Metrics metrics, XPackLicenseState licenseState, List<ExtraCheckers> extraCheckers) {
79+
public Verifier(Metrics metrics, XPackLicenseState licenseState, List<ExtraCheckers> extraCheckers, Settings settings) {
7880
this.metrics = metrics;
7981
this.licenseState = licenseState;
8082
this.extraCheckers = extraCheckers;
83+
this.settings = settings;
8184
}
8285

8386
/**
@@ -102,7 +105,7 @@ Collection<Failure> verify(LogicalPlan plan, BitSet partialMetrics) {
102105
// collect plan checkers
103106
var planCheckers = planCheckers(plan);
104107
for (ExtraCheckers e : extraCheckers) {
105-
planCheckers.addAll(e.extra());
108+
planCheckers.addAll(e.extra(settings));
106109
}
107110

108111
// Concrete verifications

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/execution/PlanExecutor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package org.elasticsearch.xpack.esql.execution;
99

1010
import org.elasticsearch.action.ActionListener;
11+
import org.elasticsearch.common.settings.Settings;
1112
import org.elasticsearch.indices.IndicesExpressionGrouper;
1213
import org.elasticsearch.license.XPackLicenseState;
1314
import org.elasticsearch.telemetry.metric.MeterRegistry;
@@ -52,14 +53,15 @@ public PlanExecutor(
5253
MeterRegistry meterRegistry,
5354
XPackLicenseState licenseState,
5455
EsqlQueryLog queryLog,
55-
List<Verifier.ExtraCheckers> extraCheckers
56+
List<Verifier.ExtraCheckers> extraCheckers,
57+
Settings settings
5658
) {
5759
this.indexResolver = indexResolver;
5860
this.preAnalyzer = new PreAnalyzer();
5961
this.functionRegistry = new EsqlFunctionRegistry();
6062
this.mapper = new Mapper();
6163
this.metrics = new Metrics(functionRegistry);
62-
this.verifier = new Verifier(metrics, licenseState, extraCheckers);
64+
this.verifier = new Verifier(metrics, licenseState, extraCheckers, settings);
6365
this.planTelemetryManager = new PlanTelemetryManager(meterRegistry);
6466
this.queryLog = queryLog;
6567
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
import java.util.Collection;
8383
import java.util.List;
8484
import java.util.Objects;
85+
import java.util.Set;
8586
import java.util.function.Predicate;
8687
import java.util.function.Supplier;
8788

@@ -190,6 +191,11 @@ public class EsqlPlugin extends Plugin implements ActionPlugin, ExtensiblePlugin
190191
);
191192

192193
private final List<Verifier.ExtraCheckers> extraCheckers = new ArrayList<>();
194+
private final Settings settings;
195+
196+
public EsqlPlugin(Settings settings) {
197+
this.settings = settings;
198+
}
193199

194200
@Override
195201
public Collection<?> createComponents(PluginServices services) {
@@ -209,7 +215,8 @@ public Collection<?> createComponents(PluginServices services) {
209215
services.telemetryProvider().getMeterRegistry(),
210216
getLicenseState(),
211217
new EsqlQueryLog(services.clusterService().getClusterSettings(), services.slowLogFieldProvider()),
212-
extraCheckers
218+
extraCheckers,
219+
settings
213220
),
214221
new ExchangeService(
215222
services.clusterService().getSettings(),

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/telemetry/PlanExecutorMetricsTests.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,14 @@ public void testFailedMetric() {
150150
return null;
151151
}).when(esqlClient).execute(eq(EsqlResolveFieldsAction.TYPE), any(), any());
152152

153-
var planExecutor = new PlanExecutor(indexResolver, MeterRegistry.NOOP, new XPackLicenseState(() -> 0L), mockQueryLog(), List.of());
153+
var planExecutor = new PlanExecutor(
154+
indexResolver,
155+
MeterRegistry.NOOP,
156+
new XPackLicenseState(() -> 0L),
157+
mockQueryLog(),
158+
List.of(),
159+
Settings.EMPTY
160+
);
154161
var enrichResolver = mockEnrichResolver();
155162

156163
var request = new EsqlQueryRequest();

0 commit comments

Comments
 (0)