@@ -7420,6 +7420,42 @@ public void testRedundantSortOnMvExpandJoinEnrichGrokDissect() {
74207420 as (eval .child (), EsRelation .class );
74217421 }
74227422
7423+ /**
7424+ * TopN[[Order[emp_no{f}#23,ASC,LAST]],1000[INTEGER]]
7425+ * \_Filter[emp_no{f}#23 > 1[INTEGER]]
7426+ * \_MvExpand[languages{f}#26,languages{r}#36]
7427+ * \_EsqlProject[[language_name{f}#35, foo{r}#5 AS bar, languages{f}#26, emp_no{f}#23]]
7428+ * \_Join[LEFT,[language_code{r}#8],[language_code{r}#8],[language_code{f}#34]]
7429+ * |_Project[[_meta_field{f}#29, emp_no{f}#23, first_name{f}#24, gender{f}#25, hire_date{f}#30, job{f}#31, job.raw{f}#32, l
7430+ * anguages{f}#26, last_name{f}#27, long_noidx{f}#33, salary{f}#28, foo{r}#5, languages{f}#26 AS language_code]]
7431+ * | \_Eval[[TOSTRING(languages{f}#26) AS foo]]
7432+ * | \_EsRelation[test][_meta_field{f}#29, emp_no{f}#23, first_name{f}#24, ..]
7433+ * \_EsRelation[languages_lookup][LOOKUP][language_code{f}#34, language_name{f}#35]
7434+ */
7435+ public void testRedundantSortOnMvExpandJoinKeepDropRename () {
7436+ var plan = optimizedPlan ("""
7437+ FROM test
7438+ | SORT languages
7439+ | EVAL foo = to_string(languages), language_code = languages
7440+ | LOOKUP JOIN languages_lookup ON language_code
7441+ | KEEP language_name, language_code, foo, languages, emp_no
7442+ | DROP language_code
7443+ | RENAME foo AS bar
7444+ | MV_EXPAND languages
7445+ | WHERE emp_no > 1
7446+ | SORT emp_no
7447+ """ );
7448+
7449+ var topN = as (plan , TopN .class );
7450+ var filter = as (topN .child (), Filter .class );
7451+ var mvExpand = as (filter .child (), MvExpand .class );
7452+ var project = as (mvExpand .child (), Project .class );
7453+ var join = as (project .child (), Join .class );
7454+ var project2 = as (join .left (), Project .class );
7455+ var eval = as (project2 .child (), Eval .class );
7456+ as (eval .child (), EsRelation .class );
7457+ }
7458+
74237459 /**
74247460 * TopN[[Order[emp_no{f}#15,ASC,LAST]],1000[INTEGER]]
74257461 * \_Filter[emp_no{f}#15 > 1[INTEGER]]
@@ -7467,6 +7503,18 @@ public void testUnboundedSortSimple() {
74677503 assertThat (e .getMessage (), containsString ("line 2:5: Unbounded sort not supported yet [SORT y] please add a limit" ));
74687504 }
74697505
7506+ public void testUnboundedSortJoin () {
7507+ var query = """
7508+ ROW x = [1,2,3], y = 2, language_code = 1
7509+ | SORT y
7510+ | LOOKUP JOIN languages_lookup ON language_code
7511+ | WHERE language_name == "foo"
7512+ """ ;
7513+
7514+ VerificationException e = expectThrows (VerificationException .class , () -> plan (query ));
7515+ assertThat (e .getMessage (), containsString ("line 2:5: Unbounded sort not supported yet [SORT y] please add a limit" ));
7516+ }
7517+
74707518 public void testUnboundedSortWithMvExpandAndFilter () {
74717519 var query = """
74727520 FROM test
0 commit comments