@@ -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