@@ -241,13 +241,11 @@ public void testShadowingAfterPushdown2() {
241241 }
242242
243243 /**
244- * EsqlProject [[languages{f}#30, emp_no{f}#27, salary{f}#32]]
244+ * Project [[languages{f}#30, emp_no{f}#27, salary{f}#32]]
245245 * \_Limit[1000[INTEGER],true]
246- * \_Join[LEFT,[lang{r}#10, languages{f}#30],[lang{r}#10],[languages{f}#30],lang{r}#10 == languages{f}#30]
247- * |_EsqlProject[[_meta_field{f}#22, emp_no{f}#16, first_name{f}#17, gender{f}#18, hire_date{f}#23, job{f}#24, job.raw{f}#25,
248- * languages{f}#19 AS lang2#4, last_name{f}#20, long_noidx{f}#26, salary{f}#21, emp_no{f}#16 AS lang#10]]
249- * | \_Limit[1000[INTEGER],false]
250- * | \_EsRelation[test][_meta_field{f}#22, emp_no{f}#16, first_name{f}#17, ..]
246+ * \_Join[LEFT,[emp_no{f}#16, languages{f}#30],[emp_no{f}#16],[languages{f}#30],emp_no{f}#16 == languages{f}#30]
247+ * |_Limit[1000[INTEGER],false]
248+ * | \_EsRelation[test][_meta_field{f}#22, emp_no{f}#16, first_name{f}#17, ..]
251249 * \_EsRelation[test_lookup][LOOKUP][emp_no{f}#27, languages{f}#30, salary{f}#32]
252250 */
253251 public void testShadowingAfterPushdownExpressionJoin () {
@@ -267,8 +265,7 @@ public void testShadowingAfterPushdownExpressionJoin() {
267265 var limit1 = asLimit (project .child (), 1000 , true );
268266 var join = as (limit1 .child (), Join .class );
269267 var lookupRel = as (join .right (), EsRelation .class );
270- var project2 = as (join .left (), Project .class );
271- var limit2 = asLimit (project2 .child (), 1000 , false );
268+ var limit2 = asLimit (join .left (), 1000 , false );
272269 var mainRel = as (limit2 .child (), EsRelation .class );
273270
274271 var projections = project .projections ();
@@ -285,33 +282,14 @@ public void testShadowingAfterPushdownExpressionJoin() {
285282 var salary = as (projections .get (2 ), FieldAttribute .class );
286283 assertEquals ("salary" , salary .fieldName ().string ());
287284 assertTrue (lookupRel .outputSet ().contains (salary ));
288-
289- var project2Projections = project2 .projections ();
290- var lang = as (project2Projections .stream ().filter (p -> "lang" .equals (p .name ())).findFirst ().get (), Alias .class );
291- var langAttr = lang .toAttribute ();
292- var originalEmpNo = as (lang .child (), FieldAttribute .class );
293- assertEquals ("emp_no" , originalEmpNo .fieldName ().string ());
294- assertTrue (mainRel .outputSet ().contains (originalEmpNo ));
295-
296- var joinConfig = join .config ();
297- assertSame (JoinTypes .LEFT , joinConfig .type ());
298- var leftKeys = joinConfig .leftFields ();
299- assertEquals (1 , leftKeys .size ());
300- assertTrue (leftKeys .get (0 ).semanticEquals (langAttr ));
301- var rightKeys = joinConfig .rightFields ();
302- assertEquals (1 , rightKeys .size ());
303- assertEquals ("languages" , rightKeys .get (0 ).name ());
304- assertTrue (lookupRel .outputSet ().contains (rightKeys .get (0 )));
305285 }
306286
307287 /**
308- * EsqlProject [[languages{f}#24, emp_no{f}#21, salary{f}#26]]
288+ * Project [[languages{f}#24, emp_no{f}#21, salary{f}#26]]
309289 * \_Limit[1000[INTEGER],true]
310- * \_Join[LEFT,[lang{r}#4, languages{f}#24],[lang{r}#4],[languages{f}#24],lang{r}#4 == languages{f}#24]
311- * |_EsqlProject[[_meta_field{f}#16, emp_no{f}#10, first_name{f}#11, gender{f}#12, hire_date{f}#17, job{f}#18, job.raw{f}#19,
312- * languages{f}#13 AS lang#4, last_name{f}#14, long_noidx{f}#20, salary{f}#15]]
313- * | \_Limit[1000[INTEGER],false]
314- * | \_EsRelation[test][_meta_field{f}#16, emp_no{f}#10, first_name{f}#11, ..]
290+ * \_Join[LEFT,[languages{f}#24, languages{f}#13],[languages{f}#13],[languages{f}#24],languages{f}#13 == languages{f}#24]
291+ * |_Limit[1000[INTEGER],false]
292+ * | \_EsRelation[test][_meta_field{f}#16, emp_no{f}#10, first_name{f}#11, ..]
315293 * \_EsRelation[test_lookup][LOOKUP][emp_no{f}#21, languages{f}#24, salary{f}#26]
316294 */
317295 public void testShadowingAfterPushdownRenameExpressionJoin () {
@@ -329,8 +307,7 @@ public void testShadowingAfterPushdownRenameExpressionJoin() {
329307 var limit1 = asLimit (project .child (), 1000 , true );
330308 var join = as (limit1 .child (), Join .class );
331309 var lookupRel = as (join .right (), EsRelation .class );
332- var project2 = as (join .left (), Project .class );
333- var limit2 = asLimit (project2 .child (), 1000 , false );
310+ var limit2 = asLimit (join .left (), 1000 , false );
334311 var mainRel = as (limit2 .child (), EsRelation .class );
335312
336313 var projections = project .projections ();
@@ -347,34 +324,15 @@ public void testShadowingAfterPushdownRenameExpressionJoin() {
347324 var salary = as (projections .get (2 ), FieldAttribute .class );
348325 assertEquals ("salary" , salary .fieldName ().string ());
349326 assertTrue (lookupRel .outputSet ().contains (salary ));
350-
351- var project2Projections = project2 .projections ();
352- var lang = as (project2Projections .stream ().filter (p -> "lang" .equals (p .name ())).findFirst ().get (), Alias .class );
353- var langAttr = lang .toAttribute ();
354- var originalLanguages = as (lang .child (), FieldAttribute .class );
355- assertEquals ("languages" , originalLanguages .fieldName ().string ());
356- assertTrue (mainRel .outputSet ().contains (originalLanguages ));
357-
358- var joinConfig = join .config ();
359- assertSame (JoinTypes .LEFT , joinConfig .type ());
360- var leftKeys = joinConfig .leftFields ();
361- assertEquals (1 , leftKeys .size ());
362- assertTrue (leftKeys .get (0 ).semanticEquals (langAttr ));
363- var rightKeys = joinConfig .rightFields ();
364- assertEquals (1 , rightKeys .size ());
365- assertEquals ("languages" , rightKeys .get (0 ).name ());
366- assertTrue (lookupRel .outputSet ().contains (rightKeys .get (0 )));
367327 }
368328
369329 /**
370- * EsqlProject [[languages{f}#25, emp_no{f}#22, salary{f}#27]]
330+ * Project [[languages{f}#25, emp_no{f}#22, salary{f}#27]]
371331 * \_Limit[1000[INTEGER],true]
372- * \_Join[LEFT,[languages{f}#25, lang{r}#4],[lang{r}#4],[languages{f}#25],lang{r}#4 == languages{f}#25]
373- * |_EsqlProject[[_meta_field{f}#17, emp_no{f}#11, first_name{f}#12, gender{f}#13, hire_date{f}#18, job{f}#19, job.raw{f}#20, l
374- * ast_name{f}#15, long_noidx{f}#21, salary{f}#16, lang{r}#4]]
375- * | \_Eval[[languages{f}#14 + 0[INTEGER] AS lang#4]]
376- * | \_Limit[1000[INTEGER],false]
377- * | \_EsRelation[test][_meta_field{f}#17, emp_no{f}#11, first_name{f}#12, ..]
332+ * \_Join[LEFT,[lang{r}#4, languages{f}#25],[lang{r}#4],[languages{f}#25],lang{r}#4 == languages{f}#25]
333+ * |_Eval[[languages{f}#14 + 0[INTEGER] AS lang#4]]
334+ * | \_Limit[1000[INTEGER],false]
335+ * | \_EsRelation[test][_meta_field{f}#17, emp_no{f}#11, first_name{f}#12, ..]
378336 * \_EsRelation[test_lookup][LOOKUP][emp_no{f}#22, languages{f}#25, salary{f}#27]
379337 */
380338 public void testShadowingAfterPushdownEvalExpressionJoin () {
@@ -393,8 +351,7 @@ public void testShadowingAfterPushdownEvalExpressionJoin() {
393351 var limit1 = asLimit (project .child (), 1000 , true );
394352 var join = as (limit1 .child (), Join .class );
395353 var lookupRel = as (join .right (), EsRelation .class );
396- var project2 = as (join .left (), Project .class );
397- var eval = as (project2 .child (), Eval .class );
354+ var eval = as (join .left (), Eval .class );
398355 var limit2 = asLimit (eval .child (), 1000 , false );
399356 var mainRel = as (limit2 .child (), EsRelation .class );
400357
@@ -412,23 +369,6 @@ public void testShadowingAfterPushdownEvalExpressionJoin() {
412369 var salary = as (projections .get (2 ), FieldAttribute .class );
413370 assertEquals ("salary" , salary .fieldName ().string ());
414371 assertTrue (lookupRel .outputSet ().contains (salary ));
415-
416- var lang = as (eval .fields ().get (0 ), Alias .class );
417- var langAttr = lang .toAttribute ();
418- var add = as (lang .child (), org .elasticsearch .xpack .esql .expression .predicate .operator .arithmetic .Add .class );
419- var originalLanguages = as (add .left (), FieldAttribute .class );
420- assertEquals ("languages" , originalLanguages .fieldName ().string ());
421- assertTrue (mainRel .outputSet ().contains (originalLanguages ));
422-
423- var joinConfig = join .config ();
424- assertSame (JoinTypes .LEFT , joinConfig .type ());
425- var leftKeys = joinConfig .leftFields ();
426- assertEquals (1 , leftKeys .size ());
427- assertTrue (leftKeys .get (0 ).semanticEquals (langAttr ));
428- var rightKeys = joinConfig .rightFields ();
429- assertEquals (1 , rightKeys .size ());
430- assertEquals ("languages" , rightKeys .get (0 ).name ());
431- assertTrue (lookupRel .outputSet ().contains (rightKeys .get (0 )));
432372 }
433373
434374 private static void assertLeftJoinConfig (
0 commit comments