@@ -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 () {
@@ -1575,6 +1584,54 @@ public void testMultiLookupJoinSameIndexKeepAfter() {
15751584 );
15761585 }
15771586
1587+ public void testJoinMaskingKeep () {
1588+ assertFieldNames (
1589+ """
1590+ from languag*
1591+ | eval type = null
1592+ | rename language_name as message
1593+ | lookup join message_types_lookup on message
1594+ | rename type as message
1595+ | lookup join message_types_lookup on message
1596+ | keep `language.name`""" ,
1597+ Set .of ("language.name" , "type" , "language_name" , "message" , "language_name.*" , "message.*" , "type.*" , "language.name.*" )
1598+ );
1599+ }
1600+
1601+ public void testJoinMaskingKeep2 () {
1602+ assertFieldNames ("""
1603+ from languag*
1604+ | eval type = "foo"
1605+ | rename type as message
1606+ | lookup join message_types_lookup on message
1607+ | rename type as message
1608+ | lookup join message_types_lookup on message
1609+ | keep `language.name`""" , Set .of ("language.name" , "type" , "message" , "message.*" , "type.*" , "language.name.*" ));
1610+ }
1611+
1612+ public void testEnrichMaskingEvalOn () {
1613+ assertFieldNames ("""
1614+ from employees
1615+ | eval language_name = null
1616+ | enrich languages_policy on languages
1617+ | rename language_name as languages
1618+ | eval languages = length(languages)
1619+ | enrich languages_policy on languages
1620+ | keep emp_no, language_name""" , Set .of ("emp_no" , "language_name" , "languages" , "language_name.*" , "languages.*" , "emp_no.*" ));
1621+ }
1622+
1623+ public void testEnrichAndJoinMaskingEvalWh () {
1624+ assertFieldNames ("""
1625+ from employees
1626+ | eval language_name = null
1627+ | enrich languages_policy on languages
1628+ | rename language_name as languages
1629+ | eval languages = length(languages)
1630+ | enrich languages_policy on languages
1631+ | lookup join message_types_lookup on language_name
1632+ | keep emp_no, language_name""" , Set .of ("emp_no" , "language_name" , "languages" , "language_name.*" , "languages.*" , "emp_no.*" ));
1633+ }
1634+
15781635 private Set <String > fieldNames (String query , Set <String > enrichPolicyMatchFields ) {
15791636 var preAnalysisResult = new EsqlSession .PreAnalysisResult (null );
15801637 return EsqlSession .fieldNames (parser .createStatement (query ), enrichPolicyMatchFields , preAnalysisResult ).fieldNames ();
0 commit comments