Skip to content

Commit ce76fba

Browse files
committed
Update validation tests
1 parent 3796a14 commit ce76fba

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

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

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,41 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
9494

9595
String err;
9696

97+
98+
// Remote enrich is ok after limit
9799
plan("""
98100
FROM test
101+
| LIMIT 10
99102
| EVAL language_code = languages
100103
| ENRICH _remote:languages ON language_code
101104
| STATS count(*) BY language_name
102105
""", analyzer);
103106

107+
// Remote enrich is ok after topn
108+
plan("""
109+
FROM test
110+
| EVAL language_code = languages
111+
| SORT languages
112+
| ENRICH _remote:languages ON language_code
113+
""", analyzer);
114+
plan("""
115+
FROM test
116+
| EVAL language_code = languages
117+
| SORT languages
118+
| LIMIT 2
119+
| ENRICH _remote:languages ON language_code
120+
""", analyzer);
121+
122+
// Remote enrich is ok before pipeline breakers
104123
plan("""
105124
FROM test
125+
| EVAL language_code = languages
126+
| ENRICH _remote:languages ON language_code
106127
| LIMIT 10
128+
""", analyzer);
129+
130+
plan("""
131+
FROM test
107132
| EVAL language_code = languages
108133
| ENRICH _remote:languages ON language_code
109134
| STATS count(*) BY language_name
@@ -117,6 +142,13 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
117142
| LIMIT 10
118143
""", analyzer);
119144

145+
plan("""
146+
FROM test
147+
| EVAL language_code = languages
148+
| ENRICH _remote:languages ON language_code
149+
| SORT language_name
150+
""", analyzer);
151+
120152
err = error("""
121153
FROM test
122154
| EVAL language_code = languages
@@ -227,6 +259,9 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
227259
assertThat(err, containsString("4:3: ENRICH with remote policy can't be executed after [CHANGE_POINT salary ON languages]@2:3"));
228260
}
229261

262+
/**
263+
* The validation should not trigger for remote enrich after a lookup join. Lookup joins can be executed anywhere.
264+
*/
230265
public void testRemoteEnrichAfterLookupJoin() {
231266
EnrichResolution enrichResolution = new EnrichResolution();
232267
loadEnrichPolicyResolution(
@@ -254,32 +289,29 @@ public void testRemoteEnrichAfterLookupJoin() {
254289
| %s
255290
""", lookupCommand), analyzer);
256291

257-
String err = error(Strings.format("""
292+
plan(Strings.format("""
258293
FROM test
259294
| EVAL language_code = languages
260295
| %s
261296
| ENRICH _remote:languages ON language_code
262297
""", lookupCommand), analyzer);
263-
assertThat(err, containsString("4:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3"));
264298

265-
err = error(Strings.format("""
299+
plan(Strings.format("""
266300
FROM test
267301
| EVAL language_code = languages
268302
| %s
269303
| ENRICH _remote:languages ON language_code
270304
| %s
271305
""", lookupCommand, lookupCommand), analyzer);
272-
assertThat(err, containsString("4:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3"));
273306

274-
err = error(Strings.format("""
307+
plan(Strings.format("""
275308
FROM test
276309
| EVAL language_code = languages
277310
| %s
278311
| EVAL x = 1
279312
| MV_EXPAND language_code
280313
| ENRICH _remote:languages ON language_code
281314
""", lookupCommand), analyzer);
282-
assertThat(err, containsString("6:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3"));
283315
}
284316

285317
public void testRemoteLookupJoinWithPipelineBreaker() {

0 commit comments

Comments
 (0)