ESQL: Add name IDs to golden tests and fix synthetic names#143450
Merged
GalLalouche merged 3 commits intoelastic:mainfrom Mar 3, 2026
Merged
ESQL: Add name IDs to golden tests and fix synthetic names#143450GalLalouche merged 3 commits intoelastic:mainfrom
GalLalouche merged 3 commits intoelastic:mainfrom
Conversation
Collaborator
|
Pinging @elastic/es-analytical-engine (Team:Analytics) |
2912e16 to
256fb47
Compare
alex-spies
approved these changes
Mar 3, 2026
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/GoldenTestCase.java
Show resolved
Hide resolved
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/GoldenTestCase.java
Show resolved
Hide resolved
szybia
added a commit
to szybia/elasticsearch
that referenced
this pull request
Mar 3, 2026
…locations * upstream/main: (51 commits) ESQL: Remaining serialization tests (elastic#143470) Eagerly release resources in `TransportAwaitClusterStateVersionAppliedAction` (elastic#143477) Stop and relocate sliced reindex on shutdown (elastic#143183) Documentation for query_vector base64 parameter (elastic#142675) ES|QL: Fix LIMIT after all columns are dropped (elastic#143463) Update docs-build.yml (elastic#142958) Fix KnnIndexTester to work with byte vectors (elastic#143493) Fix IndexInputUtils.withSlice to produce native-safe MemorySegments on Java 21 (elastic#143479) CPS fix: include only relevant projects in the search response metadata (elastic#143367) apm-data: explicit map of timestamp.us to long (elastic#143173) [Inference API] Add custom headers for Azure OpenAI Service (elastic#142969) ESQL: Add name IDs to golden tests and fix synthetic names (elastic#143450) Add getUnavailableShards to BaseBroadcastResponse (elastic#143406) Add description to reindex API without sensitive info (elastic#143112) SQL: fix CLI tests (elastic#143451) ES|QL: Add note of future removal of FORK implicit LIMIT (elastic#143457) [Test] Randomly disable doc values skippers in time-series indices (elastic#143389) Improve pattern text downgrade license test (elastic#143102) [Transform] Stop transforms at the end of tests (elastic#139783) Mute org.elasticsearch.compute.lucene.read.ValueSourceReaderTypeConversionTests testLoadAll elastic#143471 ...
shmuelhanoch
pushed a commit
to shmuelhanoch/elasticsearch
that referenced
this pull request
Mar 4, 2026
…43450) This PR adds support for two golden tests features in ESQL: Name IDs are no longer removed, but are instead normalized, so golden tests can be used to track name IDs. Fixed a bug in synthetic names not being normalized, which could lead to false positives.
This was referenced Mar 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR Summary
This PR adds support for two golden tests features in ESQL:
Existing discrepancies
Note: There are discrepancies in some of name IDs (Summary by Cursor). @alex-spies, I believe you encountered this in your fixes to #142489!
What the inconsistency is
SubstituteRoundToGoldenTestslocal physical plans, the same intermediate aggregate fields appear with differentNameIds across anExchangeExecboundary.ExchangeExecoutput uses IDs like#2/#3EsStatsQueryExec) exposes the same logical fields as#4/#5AggregateExec FINALthen follows theExchangeExecside IDs, so the mismatch looks like an Exchange boundary drift.Why this happens (production path)
Mapperbuilds split aggregate intermediates and stores them onExchangeExecoutput.PlannerUtils.localPlan), fragment replanning (LocalMapper) rebuilds intermediate attrs, allocating freshNameIds.ExchangeExec.replaceChild(...)keeps its existingoutputlist, so parent-side IDs and child-side IDs can diverge.Why it still exists
PushStatsToSourcenoting recreated attributes can get wrongNameIds, which indicates this class of issue is known in planning code.Why it is not a trivial fix
ExchangeExecoutput to child output IDs) can break split-aggregation runtime semantics.TopIpsGrouping) and assertion failures.