@@ -478,13 +478,16 @@ public void testDropAllColumns_WithStats() {
478
478
}
479
479
480
480
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
+ );
488
491
}
489
492
490
493
public void testEnrichOn2 () {
@@ -494,7 +497,7 @@ public void testEnrichOn2() {
494
497
| enrich languages_policy on x
495
498
| keep emp_no, language_name
496
499
| 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.*" ));
498
501
}
499
502
500
503
public void testUselessEnrich () {
@@ -512,15 +515,15 @@ public void testSimpleSortLimit() {
512
515
| enrich languages_policy on x
513
516
| keep emp_no, language_name
514
517
| 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.*" ));
516
519
}
517
520
518
521
public void testWith () {
519
522
assertFieldNames (
520
523
"""
521
524
from employees | eval x = to_string(languages) | keep emp_no, x | sort emp_no | limit 1
522
525
| 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.*" )
524
527
);
525
528
}
526
529
@@ -529,7 +532,7 @@ public void testWithAlias() {
529
532
"""
530
533
from employees | sort emp_no | limit 3 | eval x = to_string(languages) | keep emp_no, x
531
534
| 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.*" )
533
536
);
534
537
}
535
538
@@ -538,7 +541,7 @@ public void testWithAliasSort() {
538
541
"""
539
542
from employees | eval x = to_string(languages) | keep emp_no, x | sort emp_no | limit 3
540
543
| 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.*" )
542
545
);
543
546
}
544
547
@@ -547,7 +550,7 @@ public void testWithAliasAndPlain() {
547
550
"""
548
551
from employees | sort emp_no desc | limit 3 | eval x = to_string(languages) | keep emp_no, x
549
552
| 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.*" )
551
554
);
552
555
}
553
556
@@ -556,7 +559,7 @@ public void testWithTwoAliasesSameProp() {
556
559
"""
557
560
from employees | sort emp_no | limit 1 | eval x = to_string(languages) | keep emp_no, x
558
561
| 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.*" )
560
563
);
561
564
}
562
565
@@ -565,7 +568,7 @@ public void testRedundantWith() {
565
568
"""
566
569
from employees | sort emp_no | limit 1 | eval x = to_string(languages) | keep emp_no, x
567
570
| 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.*" )
569
572
);
570
573
}
571
574
@@ -588,28 +591,34 @@ public void testConstantNullInput() {
588
591
| eval x = to_string(languages)
589
592
| keep emp_no, x
590
593
| 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.*" )
592
595
);
593
596
}
594
597
595
598
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
+ );
603
609
}
604
610
605
611
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
+ );
613
622
}
614
623
615
624
public void testEvalNullSort () {
@@ -1575,6 +1584,54 @@ public void testMultiLookupJoinSameIndexKeepAfter() {
1575
1584
);
1576
1585
}
1577
1586
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
+
1578
1635
private Set <String > fieldNames (String query , Set <String > enrichPolicyMatchFields ) {
1579
1636
var preAnalysisResult = new EsqlSession .PreAnalysisResult (null );
1580
1637
return EsqlSession .fieldNames (parser .createStatement (query ), enrichPolicyMatchFields , preAnalysisResult ).fieldNames ();
0 commit comments