@@ -95,16 +95,40 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
95
95
96
96
String err ;
97
97
98
+ // Remote enrich is ok after limit
98
99
plan ("""
99
100
FROM test
101
+ | LIMIT 10
100
102
| EVAL language_code = languages
101
103
| ENRICH _remote:languages ON language_code
102
104
| STATS count(*) BY language_name
103
105
""" , analyzer );
104
106
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
105
123
plan ("""
106
124
FROM test
125
+ | EVAL language_code = languages
126
+ | ENRICH _remote:languages ON language_code
107
127
| LIMIT 10
128
+ """ , analyzer );
129
+
130
+ plan ("""
131
+ FROM test
108
132
| EVAL language_code = languages
109
133
| ENRICH _remote:languages ON language_code
110
134
| STATS count(*) BY language_name
@@ -118,6 +142,13 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
118
142
| LIMIT 10
119
143
""" , analyzer );
120
144
145
+ plan ("""
146
+ FROM test
147
+ | EVAL language_code = languages
148
+ | ENRICH _remote:languages ON language_code
149
+ | SORT language_name
150
+ """ , analyzer );
151
+
121
152
err = error ("""
122
153
FROM test
123
154
| EVAL language_code = languages
@@ -230,6 +261,9 @@ public void testRemoteEnrichAfterCoordinatorOnlyPlans() {
230
261
assertThat (err , containsString ("4:3: ENRICH with remote policy can't be executed after [CHANGE_POINT salary ON languages]@2:3" ));
231
262
}
232
263
264
+ /**
265
+ * The validation should not trigger for remote enrich after a lookup join. Lookup joins can be executed anywhere.
266
+ */
233
267
public void testRemoteEnrichAfterLookupJoin () {
234
268
EnrichResolution enrichResolution = new EnrichResolution ();
235
269
loadEnrichPolicyResolution (
@@ -257,32 +291,29 @@ public void testRemoteEnrichAfterLookupJoin() {
257
291
| %s
258
292
""" , lookupCommand ), analyzer );
259
293
260
- String err = error (Strings .format ("""
294
+ plan (Strings .format ("""
261
295
FROM test
262
296
| EVAL language_code = languages
263
297
| %s
264
298
| ENRICH _remote:languages ON language_code
265
299
""" , lookupCommand ), analyzer );
266
- assertThat (err , containsString ("4:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3" ));
267
300
268
- err = error (Strings .format ("""
301
+ plan (Strings .format ("""
269
302
FROM test
270
303
| EVAL language_code = languages
271
304
| %s
272
305
| ENRICH _remote:languages ON language_code
273
306
| %s
274
307
""" , lookupCommand , lookupCommand ), analyzer );
275
- assertThat (err , containsString ("4:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3" ));
276
308
277
- err = error (Strings .format ("""
309
+ plan (Strings .format ("""
278
310
FROM test
279
311
| EVAL language_code = languages
280
312
| %s
281
313
| EVAL x = 1
282
314
| MV_EXPAND language_code
283
315
| ENRICH _remote:languages ON language_code
284
316
""" , lookupCommand ), analyzer );
285
- assertThat (err , containsString ("6:3: ENRICH with remote policy can't be executed after [" + lookupCommand + "]@3:3" ));
286
317
}
287
318
288
319
public void testRemoteLookupJoinWithPipelineBreaker () {
0 commit comments