- Notifications
You must be signed in to change notification settings - Fork 25.6k
ESQL: Fix lookup join filter pushdown to use semantic equality #136818
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESQL: Fix lookup join filter pushdown to use semantic equality #136818
Conversation
| Pinging @elastic/es-analytical-engine (Team:Analytics) |
alex-spies left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, thanks @kanoshiou !
Cc @julian-elastic , it's interesting to run the test query and see why this bug happened on current main.
I think we should also backport this to 9.2.
x-pack/plugin/esql/qa/testFixtures/src/main/resources/lookup-join.csv-spec Outdated Show resolved Hide resolved
…ter-dedup-semantic-equals
| @elasticsearchmachine test this please |
| @elasticsearchmachine test this please |
💔 Backport failed
You can use sqren/backport to manually backport by running |
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation |
…ic#136818) Previously, when pushing down filters to the right side of a lookup join, we used simple equality (contains) to check for duplicate filters. This could result in semantically equivalent filters being added multiple times if they were different object instances. This commit changes the duplicate check to use `semanticEquals()` instead, ensuring that filters with the same semantic meaning are properly deduplicated regardless of object identity. Closes elastic#136599 (cherry picked from commit f54987f) # Conflicts: # x-pack/plugin/esql/qa/server/src/main/java/org/elasticsearch/xpack/esql/qa/rest/generative/GenerativeRestTest.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java
…) (#136999) Previously, when pushing down filters to the right side of a lookup join, we used simple equality (contains) to check for duplicate filters. This could result in semantically equivalent filters being added multiple times if they were different object instances. This commit changes the duplicate check to use `semanticEquals()` instead, ensuring that filters with the same semantic meaning are properly deduplicated regardless of object identity. Closes #136599 (cherry picked from commit f54987f) # Conflicts: # x-pack/plugin/esql/qa/server/src/main/java/org/elasticsearch/xpack/esql/qa/rest/generative/GenerativeRestTest.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java Co-authored-by: kanoshiou <uiaao@tuta.io>
…ic#136818) Previously, when pushing down filters to the right side of a lookup join, we used simple equality (contains) to check for duplicate filters. This could result in semantically equivalent filters being added multiple times if they were different object instances. This commit changes the duplicate check to use `semanticEquals()` instead, ensuring that filters with the same semantic meaning are properly deduplicated regardless of object identity. Closes elastic#136599
Previously, when pushing down filters to the right side of a lookup join, we used simple equality (contains) to check for duplicate filters. This could result in semantically equivalent filters being added multiple times if they were different object instances.
This commit changes the duplicate check to use
semanticEquals()instead, ensuring that filters with the same semantic meaning are properly deduplicated regardless of object identity.Closes #136599