Skip to content

Commit d067c78

Browse files
committed
Update analysis tests.
1 parent 56f9897 commit d067c78

16 files changed

+73
-50
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,9 @@ private LogicalPlan analyzedPlan(LogicalPlan parsed, CsvTestsDataLoader.MultiInd
509509
new AnalyzerContext(configuration, functionRegistry, indexResolution, enrichPolicies, emptyInferenceResolution()),
510510
TEST_VERIFIER
511511
);
512-
LogicalPlan plan = analyzer.analyze(parsed);
512+
PlainActionFuture<LogicalPlan> analyzedPlanFuture = new PlainActionFuture<>();
513+
analyzer.analyze(parsed, analyzedPlanFuture);
514+
LogicalPlan plan = analyzedPlanFuture.actionGet();
513515
plan.setAnalyzed();
514516
LOGGER.debug("Analyzed plan:\n{}", plan);
515517
return plan;

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/AnalyzerTestUtils.java

Lines changed: 9 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.action.support.PlainActionFuture;
1011
import org.elasticsearch.index.IndexMode;
1112
import org.elasticsearch.inference.TaskType;
1213
import org.elasticsearch.xpack.core.enrich.EnrichPolicy;
@@ -131,15 +132,19 @@ public static LogicalPlan analyze(String query, String index, String mapping) {
131132
public static LogicalPlan analyze(String query, Analyzer analyzer) {
132133
var plan = new EsqlParser().createStatement(query);
133134
// System.out.println(plan);
134-
var analyzed = analyzer.analyze(plan);
135-
// System.out.println(analyzed);
136-
return analyzed;
135+
return analyze(analyzer, plan);
137136
}
138137

139138
public static LogicalPlan analyze(String query, String mapping, QueryParams params) {
140139
var plan = new EsqlParser().createStatement(query, params);
141140
var analyzer = analyzer(loadMapping(mapping, "test"), TEST_VERIFIER, configuration(query));
142-
return analyzer.analyze(plan);
141+
return analyze(analyzer, plan);
142+
}
143+
144+
public static LogicalPlan analyze(Analyzer analyzer, LogicalPlan plan) {
145+
PlainActionFuture<LogicalPlan> analyzedPlanFuture = new PlainActionFuture<>();
146+
analyzer.analyze(plan, analyzedPlanFuture);
147+
return analyzedPlanFuture.actionGet();
143148
}
144149

145150
public static IndexResolution loadMapping(String resource, String indexName, IndexMode indexMode) {

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/AnalyzerTests.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public class AnalyzerTests extends ESTestCase {
159159
public void testIndexResolution() {
160160
EsIndex idx = new EsIndex("idx", Map.of());
161161
Analyzer analyzer = analyzer(IndexResolution.valid(idx));
162-
var plan = analyzer.analyze(UNRESOLVED_RELATION);
162+
var plan = analyze(analyzer, UNRESOLVED_RELATION);
163163
var limit = as(plan, Limit.class);
164164

165165
assertEquals(new EsRelation(EMPTY, idx.name(), IndexMode.STANDARD, idx.indexNameWithModes(), NO_FIELDS), limit.child());
@@ -168,7 +168,7 @@ public void testIndexResolution() {
168168
public void testFailOnUnresolvedIndex() {
169169
Analyzer analyzer = analyzer(IndexResolution.invalid("Unknown index [idx]"));
170170

171-
VerificationException e = expectThrows(VerificationException.class, () -> analyzer.analyze(UNRESOLVED_RELATION));
171+
VerificationException e = expectThrows(VerificationException.class, () -> analyze(analyzer, UNRESOLVED_RELATION));
172172

173173
assertThat(e.getMessage(), containsString("Unknown index [idx]"));
174174
}
@@ -177,7 +177,7 @@ public void testIndexWithClusterResolution() {
177177
EsIndex idx = new EsIndex("cluster:idx", Map.of());
178178
Analyzer analyzer = analyzer(IndexResolution.valid(idx));
179179

180-
var plan = analyzer.analyze(UNRESOLVED_RELATION);
180+
var plan = analyze(analyzer, UNRESOLVED_RELATION);
181181
var limit = as(plan, Limit.class);
182182

183183
assertEquals(new EsRelation(EMPTY, idx.name(), IndexMode.STANDARD, idx.indexNameWithModes(), NO_FIELDS), limit.child());
@@ -187,7 +187,8 @@ public void testAttributeResolution() {
187187
EsIndex idx = new EsIndex("idx", LoadMapping.loadMapping("mapping-one-field.json"));
188188
Analyzer analyzer = analyzer(IndexResolution.valid(idx));
189189

190-
var plan = analyzer.analyze(
190+
var plan = analyze(
191+
analyzer,
191192
new Eval(EMPTY, UNRESOLVED_RELATION, List.of(new Alias(EMPTY, "e", new UnresolvedAttribute(EMPTY, "emp_no"))))
192193
);
193194

@@ -208,7 +209,8 @@ public void testAttributeResolution() {
208209
public void testAttributeResolutionOfChainedReferences() {
209210
Analyzer analyzer = analyzer(loadMapping("mapping-one-field.json", "idx"));
210211

211-
var plan = analyzer.analyze(
212+
var plan = analyze(
213+
analyzer,
212214
new Eval(
213215
EMPTY,
214216
new Eval(EMPTY, UNRESOLVED_RELATION, List.of(new Alias(EMPTY, "e", new UnresolvedAttribute(EMPTY, "emp_no")))),
@@ -240,7 +242,8 @@ public void testRowAttributeResolution() {
240242
EsIndex idx = new EsIndex("idx", Map.of());
241243
Analyzer analyzer = analyzer(IndexResolution.valid(idx));
242244

243-
var plan = analyzer.analyze(
245+
var plan = analyze(
246+
analyzer,
244247
new Eval(
245248
EMPTY,
246249
new Row(EMPTY, List.of(new Alias(EMPTY, "emp_no", new Literal(EMPTY, 1, DataType.INTEGER)))),
@@ -271,7 +274,8 @@ public void testUnresolvableAttribute() {
271274

272275
VerificationException ve = expectThrows(
273276
VerificationException.class,
274-
() -> analyzer.analyze(
277+
() -> analyze(
278+
analyzer,
275279
new Eval(EMPTY, UNRESOLVED_RELATION, List.of(new Alias(EMPTY, "e", new UnresolvedAttribute(EMPTY, "emp_nos"))))
276280
)
277281
);

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/ParsingTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import static org.elasticsearch.xpack.esql.EsqlTestUtils.as;
3737
import static org.elasticsearch.xpack.esql.EsqlTestUtils.emptyInferenceResolution;
3838
import static org.elasticsearch.xpack.esql.EsqlTestUtils.emptyPolicyResolution;
39+
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.analyze;
3940
import static org.hamcrest.Matchers.equalTo;
4041
import static org.hamcrest.Matchers.hasSize;
4142

@@ -182,7 +183,7 @@ public void testInvalidSample() {
182183
}
183184

184185
private String error(String query) {
185-
ParsingException e = expectThrows(ParsingException.class, () -> defaultAnalyzer.analyze(parser.createStatement(query)));
186+
ParsingException e = expectThrows(ParsingException.class, () -> analyze(defaultAnalyzer, parser.createStatement(query)));
186187
String message = e.getMessage();
187188
assertTrue(message.startsWith("line "));
188189
return message.substring("line ".length());

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/VerifierTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939

4040
import static org.elasticsearch.xpack.esql.EsqlTestUtils.paramAsConstant;
4141
import static org.elasticsearch.xpack.esql.EsqlTestUtils.withDefaultLimitWarning;
42+
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.analyze;
4243
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.loadMapping;
4344
import static org.elasticsearch.xpack.esql.core.type.DataType.BOOLEAN;
4445
import static org.elasticsearch.xpack.esql.core.type.DataType.CARTESIAN_POINT;
@@ -2241,7 +2242,7 @@ private void query(String query) {
22412242
}
22422243

22432244
private void query(String query, Analyzer analyzer) {
2244-
analyzer.analyze(parser.createStatement(query));
2245+
analyze(analyzer, parser.createStatement(query));
22452246
}
22462247

22472248
private String error(String query) {
@@ -2272,7 +2273,7 @@ private String error(String query, Analyzer analyzer, Class<? extends Exception>
22722273
Throwable e = expectThrows(
22732274
exception,
22742275
"Expected error for query [" + query + "] but no error was raised",
2275-
() -> analyzer.analyze(parser.createStatement(query, new QueryParams(parameters)))
2276+
() -> analyze(analyzer, parser.createStatement(query, new QueryParams(parameters)))
22762277
);
22772278
assertThat(e, instanceOf(exception));
22782279

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/CheckLicenseTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.xpack.esql.VerificationException;
2020
import org.elasticsearch.xpack.esql.analysis.Analyzer;
2121
import org.elasticsearch.xpack.esql.analysis.AnalyzerContext;
22+
import org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils;
2223
import org.elasticsearch.xpack.esql.analysis.Verifier;
2324
import org.elasticsearch.xpack.esql.core.expression.Expression;
2425
import org.elasticsearch.xpack.esql.core.expression.FoldContext;
@@ -86,7 +87,7 @@ public EsqlFunctionRegistry snapshotRegistry() {
8687
? new LicensedLimit(l.source(), l.limit(), l.child(), functionLicenseFeature)
8788
: l
8889
);
89-
return analyzer(registry, operationMode).analyze(plan);
90+
return AnalyzerTestUtils.analyze(analyzer(registry, operationMode), plan);
9091
}
9192

9293
private static Analyzer analyzer(EsqlFunctionRegistry registry, License.OperationMode operationMode) {

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/AbstractLogicalPlanOptimizerTests.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import static org.elasticsearch.xpack.esql.EsqlTestUtils.loadMapping;
3333
import static org.elasticsearch.xpack.esql.EsqlTestUtils.unboundLogicalOptimizerContext;
3434
import static org.elasticsearch.xpack.esql.EsqlTestUtils.withDefaultLimitWarning;
35+
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.analyze;
3536
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.defaultLookupResolution;
3637
import static org.elasticsearch.xpack.esql.core.type.DataType.KEYWORD;
3738

@@ -180,35 +181,35 @@ protected LogicalPlan plan(String query) {
180181
}
181182

182183
protected LogicalPlan plan(String query, LogicalPlanOptimizer optimizer) {
183-
var analyzed = analyzer.analyze(parser.createStatement(query));
184+
var analyzed = analyze(analyzer, parser.createStatement(query));
184185
// System.out.println(analyzed);
185186
var optimized = optimizer.optimize(analyzed);
186187
// System.out.println(optimized);
187188
return optimized;
188189
}
189190

190191
protected LogicalPlan planAirports(String query) {
191-
var analyzed = analyzerAirports.analyze(parser.createStatement(query));
192+
var analyzed = analyze(analyzerAirports, parser.createStatement(query));
192193
// System.out.println(analyzed);
193194
var optimized = logicalOptimizer.optimize(analyzed);
194195
// System.out.println(optimized);
195196
return optimized;
196197
}
197198

198199
protected LogicalPlan planExtra(String query) {
199-
var analyzed = analyzerExtra.analyze(parser.createStatement(query));
200+
var analyzed = analyze(analyzerExtra, parser.createStatement(query));
200201
// System.out.println(analyzed);
201202
var optimized = logicalOptimizer.optimize(analyzed);
202203
// System.out.println(optimized);
203204
return optimized;
204205
}
205206

206207
protected LogicalPlan planTypes(String query) {
207-
return logicalOptimizer.optimize(analyzerTypes.analyze(parser.createStatement(query)));
208+
return logicalOptimizer.optimize(analyze(analyzerTypes, parser.createStatement(query)));
208209
}
209210

210211
protected LogicalPlan planMultiIndex(String query) {
211-
return logicalOptimizer.optimize(multiIndexAnalyzer.analyze(parser.createStatement(query)));
212+
return logicalOptimizer.optimize(analyze(multiIndexAnalyzer, parser.createStatement(query)));
212213
}
213214

214215
@Override

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/LocalLogicalPlanOptimizerTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
import static org.elasticsearch.xpack.esql.EsqlTestUtils.statsForMissingField;
8383
import static org.elasticsearch.xpack.esql.EsqlTestUtils.unboundLogicalOptimizerContext;
8484
import static org.elasticsearch.xpack.esql.EsqlTestUtils.withDefaultLimitWarning;
85+
import static org.elasticsearch.xpack.esql.analysis.AnalyzerTestUtils.analyze;
8586
import static org.elasticsearch.xpack.esql.core.tree.Source.EMPTY;
8687
import static org.hamcrest.Matchers.contains;
8788
import static org.hamcrest.Matchers.equalTo;
@@ -508,7 +509,7 @@ public void testSparseDocument() throws Exception {
508509
TEST_VERIFIER
509510
);
510511

511-
var analyzed = analyzer.analyze(parser.createStatement(query));
512+
var analyzed = analyze(analyzer, parser.createStatement(query));
512513
var optimized = logicalOptimizer.optimize(analyzed);
513514
var localContext = new LocalLogicalOptimizerContext(EsqlTestUtils.TEST_CFG, FoldContext.small(), searchStats);
514515
var plan = new LocalLogicalPlanOptimizer(localContext).localOptimize(optimized);
@@ -785,7 +786,7 @@ private LocalRelation asEmptyRelation(Object o) {
785786
}
786787

787788
private LogicalPlan plan(String query, Analyzer analyzer) {
788-
var analyzed = analyzer.analyze(parser.createStatement(query));
789+
var analyzed = analyze(analyzer, parser.createStatement(query));
789790
// System.out.println(analyzed);
790791
var optimized = logicalOptimizer.optimize(analyzed);
791792
// System.out.println(optimized);

0 commit comments

Comments
 (0)