Avoid resolving metadata fields twice in FetchFieldsPhase #108204
+399
−58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We have moved fetching of metadata fields to FetchFieldsPhase with #106325 . For backwards compatibility, metadata fields requested via
stored_fields
are returned even when they match a wildcard expression, which differs from how patterns are resolved viafields
, where patterns never match metadata fields. Instead of callinggetMatchingFieldNames
andgetFieldType
twice per metadata field, this distinction is now included in FieldFetcher#create via two predicates that control which fields should be returned depending on the field fetcher instance being created.This is take 2 of #107474 which got in but got reverted due to test failures.