@@ -478,13 +478,16 @@ public void testDropAllColumns_WithStats() {
478478    }
479479
480480    public  void  testEnrichOn () {
481-         assertFieldNames (""" 
482-             from employees 
483-             | sort emp_no 
484-             | limit 1 
485-             | eval x = to_string(languages) 
486-             | enrich languages_policy on x 
487-             | keep emp_no, language_name""" , Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ));
481+         assertFieldNames (
482+             """ 
483+                 from employees 
484+                 | sort emp_no 
485+                 | limit 1 
486+                 | eval x = to_string(languages) 
487+                 | enrich languages_policy on x 
488+                 | keep emp_no, language_name""" ,
489+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" , "x" , "x.*" )
490+         );
488491    }
489492
490493    public  void  testEnrichOn2 () {
@@ -494,7 +497,7 @@ public void testEnrichOn2() {
494497            | enrich languages_policy on x 
495498            | keep emp_no, language_name 
496499            | sort emp_no 
497-             | limit 1""" , Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ));
500+             | limit 1""" , Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" ));
498501    }
499502
500503    public  void  testUselessEnrich () {
@@ -512,15 +515,15 @@ public void testSimpleSortLimit() {
512515            | enrich languages_policy on x 
513516            | keep emp_no, language_name 
514517            | sort emp_no 
515-             | limit 1""" , Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" ));
518+             | limit 1""" , Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" ));
516519    }
517520
518521    public  void  testWith () {
519522        assertFieldNames (
520523            """ 
521524                from employees | eval x = to_string(languages) | keep emp_no, x | sort emp_no | limit 1 
522525                | enrich languages_policy on x with language_name""" ,
523-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
526+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
524527        );
525528    }
526529
@@ -529,7 +532,7 @@ public void testWithAlias() {
529532            """ 
530533                from employees  | sort emp_no | limit 3 | eval x = to_string(languages) | keep emp_no, x 
531534                | enrich languages_policy on x with lang = language_name""" ,
532-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
535+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
533536        );
534537    }
535538
@@ -538,7 +541,7 @@ public void testWithAliasSort() {
538541            """ 
539542                from employees | eval x = to_string(languages) | keep emp_no, x  | sort emp_no | limit 3 
540543                | enrich languages_policy on x with lang = language_name""" ,
541-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
544+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
542545        );
543546    }
544547
@@ -547,7 +550,7 @@ public void testWithAliasAndPlain() {
547550            """ 
548551                from employees  | sort emp_no desc | limit 3 | eval x = to_string(languages) | keep emp_no, x 
549552                | enrich languages_policy on x with lang = language_name, language_name""" ,
550-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
553+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
551554        );
552555    }
553556
@@ -556,7 +559,7 @@ public void testWithTwoAliasesSameProp() {
556559            """ 
557560                from employees  | sort emp_no | limit 1 | eval x = to_string(languages) | keep emp_no, x 
558561                | enrich languages_policy on x with lang = language_name, lang2 = language_name""" ,
559-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
562+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
560563        );
561564    }
562565
@@ -565,7 +568,7 @@ public void testRedundantWith() {
565568            """ 
566569                from employees  | sort emp_no | limit 1 | eval x = to_string(languages) | keep emp_no, x 
567570                | enrich languages_policy on x with language_name, language_name""" ,
568-             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" )
571+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
569572        );
570573    }
571574
@@ -588,28 +591,34 @@ public void testConstantNullInput() {
588591                | eval x = to_string(languages) 
589592                | keep emp_no, x 
590593                | enrich languages_policy on x with language_name, language_name""" ,
591-             Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" )
594+             Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" ,  "x" ,  "x.*" )
592595        );
593596    }
594597
595598    public  void  testEnrichEval () {
596-         assertFieldNames (""" 
597-             from employees 
598-             | eval x = to_string(languages) 
599-             | enrich languages_policy on x with lang = language_name 
600-             | eval language = concat(x, "-", lang) 
601-             | keep emp_no, x, lang, language 
602-             | sort emp_no desc | limit 3""" , Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" ));
599+         assertFieldNames (
600+             """ 
601+                 from employees 
602+                 | eval x = to_string(languages) 
603+                 | enrich languages_policy on x with lang = language_name 
604+                 | eval language = concat(x, "-", lang) 
605+                 | keep emp_no, x, lang, language 
606+                 | sort emp_no desc | limit 3""" ,
607+             Set .of ("languages" , "languages.*" , "emp_no" , "emp_no.*" , "language_name" , "language_name.*" , "x" , "x.*" , "lang" , "lang.*" )
608+         );
603609    }
604610
605611    public  void  testSimple () {
606-         assertFieldNames (""" 
607-             from employees 
608-             | eval x = 1, y = to_string(languages) 
609-             | enrich languages_policy on y 
610-             | where x > 1 
611-             | keep emp_no, language_name 
612-             | limit 1""" , Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" ));
612+         assertFieldNames (
613+             """ 
614+                 from employees 
615+                 | eval x = 1, y = to_string(languages) 
616+                 | enrich languages_policy on y 
617+                 | where x > 1 
618+                 | keep emp_no, language_name 
619+                 | limit 1""" ,
620+             Set .of ("emp_no" , "emp_no.*" , "languages" , "languages.*" , "language_name" , "language_name.*" , "x" , "y" , "x.*" , "y.*" )
621+         );
613622    }
614623
615624    public  void  testEvalNullSort () {
@@ -1653,6 +1662,54 @@ public void testInsist_multiFieldMappedMultiIndex() {
16531662        );
16541663    }
16551664
1665+     public  void  testJoinMaskingKeep () {
1666+         assertFieldNames (
1667+             """ 
1668+                 from languag* 
1669+                 | eval type = null 
1670+                 | rename language_name as message 
1671+                 | lookup join message_types_lookup on message 
1672+                 | rename type as message 
1673+                 | lookup join message_types_lookup on message 
1674+                 | keep `language.name`""" ,
1675+             Set .of ("language.name" , "type" , "language_name" , "message" , "language_name.*" , "message.*" , "type.*" , "language.name.*" )
1676+         );
1677+     }
1678+ 
1679+     public  void  testJoinMaskingKeep2 () {
1680+         assertFieldNames (""" 
1681+             from languag* 
1682+             | eval type = "foo" 
1683+             | rename type as message 
1684+             | lookup join message_types_lookup on message 
1685+             | rename type as message 
1686+             | lookup join message_types_lookup on message 
1687+             | keep `language.name`""" , Set .of ("language.name" , "type" , "message" , "message.*" , "type.*" , "language.name.*" ));
1688+     }
1689+ 
1690+     public  void  testEnrichMaskingEvalOn () {
1691+         assertFieldNames (""" 
1692+             from employees 
1693+             | eval language_name = null 
1694+             | enrich languages_policy on languages 
1695+             | rename language_name as languages 
1696+             | eval languages = length(languages) 
1697+             | enrich languages_policy on languages 
1698+             | keep emp_no, language_name""" , Set .of ("emp_no" , "language_name" , "languages" , "language_name.*" , "languages.*" , "emp_no.*" ));
1699+     }
1700+ 
1701+     public  void  testEnrichAndJoinMaskingEvalWh () {
1702+         assertFieldNames (""" 
1703+             from employees 
1704+             | eval language_name = null 
1705+             | enrich languages_policy on languages 
1706+             | rename language_name as languages 
1707+             | eval languages = length(languages) 
1708+             | enrich languages_policy on languages 
1709+             | lookup join message_types_lookup on language_name 
1710+             | keep emp_no, language_name""" , Set .of ("emp_no" , "language_name" , "languages" , "language_name.*" , "languages.*" , "emp_no.*" ));
1711+     }
1712+ 
16561713    private  Set <String > fieldNames (String  query , Set <String > enrichPolicyMatchFields ) {
16571714        var  preAnalysisResult  = new  EsqlSession .PreAnalysisResult (null );
16581715        return  EsqlSession .fieldNames (parser .createStatement (query ), enrichPolicyMatchFields , preAnalysisResult ).fieldNames ();
0 commit comments