@@ -594,6 +594,7 @@ static PreAnalysisResult fieldNames(LogicalPlan parsed, Set<String> enrichPolicy
594594 // ie "from test | eval lang = languages + 1 | keep *l" should consider both "languages" and "*l" as valid fields to ask for
595595 var keepCommandRefsBuilder = AttributeSet .builder ();
596596 var keepJoinRefsBuilder = AttributeSet .builder ();
597+ var regexExtractRefsBuilder = AttributeSet .builder ();
597598 Set <String > wildcardJoinIndices = new java .util .HashSet <>();
598599
599600 boolean [] canRemoveAliases = new boolean [] { true };
@@ -605,7 +606,7 @@ static PreAnalysisResult fieldNames(LogicalPlan parsed, Set<String> enrichPolicy
605606 referencesBuilder .removeIf (attr -> matchByName (attr , extracted .name (), false ));
606607 }
607608 // but keep the inputs needed by Grok/Dissect
608- referencesBuilder .addAll (re .input ().references ());
609+ regexExtractRefsBuilder .addAll (re .input ().references ());
609610 } else if (p instanceof Enrich enrich ) {
610611 AttributeSet enrichFieldRefs = Expressions .references (enrich .enrichFields ());
611612 AttributeSet .Builder enrichRefs = enrichFieldRefs .combine (enrich .matchField ().references ()).asBuilder ();
@@ -676,6 +677,8 @@ static PreAnalysisResult fieldNames(LogicalPlan parsed, Set<String> enrichPolicy
676677
677678 // Add JOIN ON column references afterward to avoid Alias removal
678679 referencesBuilder .addAll (keepJoinRefsBuilder );
680+ // Add the inputs needed by Grok/Dissect afterward to avoid Alias removal
681+ referencesBuilder .addAll (regexExtractRefsBuilder );
679682 // If any JOIN commands need wildcard field-caps calls, persist the index names
680683 if (wildcardJoinIndices .isEmpty () == false ) {
681684 result = result .withWildcardJoinIndices (wildcardJoinIndices );
0 commit comments