Skip to content

Commit 22401b3

Browse files
committed
Add regex extract attributes afterward
1 parent 061a751 commit 22401b3

File tree

1 file changed

+4
-1
lines changed
  • x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/session

1 file changed

+4
-1
lines changed

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/session/EsqlSession.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)