-
Notifications
You must be signed in to change notification settings - Fork 25.2k
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
Allow partial results by default in ES|QL #125060
Conversation
cfd1592
to
d42e976
Compare
f21845b
to
c3c8e3e
Compare
c3c8e3e
to
6fe39e8
Compare
Hi @dnhatn, I've created a changelog YAML for you. Note that since this PR is labelled |
Pinging @elastic/es-analytical-engine (Team:Analytics) |
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlPlugin.java
Show resolved
Hide resolved
I saw in #122802 there is one thing before enabling the default:
Is this done or should it be done after this? |
- method: POST | ||
path: /_query | ||
parameters: [ ] | ||
capabilities: [ esql_allow_partial_results ] |
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.
Not sure I understand - if we have disabled compat test with this in gradle, why do we need this check?
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.
There are two different things. The rest-compat tests are from the source code of a previous branch. We need to keep this skip to avoid running this test from the current branch with clusters that don't support partial results.
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java
Outdated
Show resolved
Hide resolved
...clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/RequestIndexFilteringIT.java
Outdated
Show resolved
Hide resolved
@smalyshev All good points. I think I have addressed them. Can you please take another look? Thanks! |
We can do this later. I prefer to have this in first so that the other teams can start working on the integration. |
docs/changelog/125060.yaml
Outdated
summary: Allow partial results by default in ES|QL | ||
area: ES|QL | ||
type: breaking | ||
issues: [] |
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.
Do we want maybe put #122802 here?
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.
Sure, 5ffc0d7
@smalyshev Thanks for the review. |
💔 Backport failed
You can use sqren/backport to manually backport by running |
With this change, ES|QL will return partial results instead of failing the entire query when encountering errors. Callers should check the partial_results flag in the response to determine if the result is partial or complete. If returning partial results is not desired, this option can be overridden per request via the allow_partial_results parameter in the query URL or globally via the cluster setting esql.allow_partial_results. Relates elastic#122802
This reverts commit 81555cc.
…126286) This reverts commit 81555cc from #125060. Fix #126275 @idegtiarenko and I investigated and believe this needs reverting: silently dropping results from the query response in case any index is missing can lead to real problems if users don't spot their mistake. I'm also not sure if all the results will get dropped, or only from some nodes/shards/clusters, meaning that this might be hard to spot by users if only some results get dropped. The main PR has no transport version bump, no new ESQL capability, and was merged 15h ago - so it should be safe to just revert it. I noticed there was a linked Serverless PR on the original PR, but it merely disabled some obsolete tests on Serverless and doesn't require reverting itself.
With this change, ES|QL will return partial results instead of failing the entire query when encountering errors. Callers should check the
partial_results
flag in the response to determine if the result is partial or complete. If returning partial results is not desired, this option can be overridden per request via theallow_partial_results
parameter in the query URL or globally via the cluster settingesql.allow_partial_results
.Relates #122802