-
Notifications
You must be signed in to change notification settings - Fork 24.9k
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: Comparing a large long to an int field fails when pushed to source #99960
Comments
Pinging @elastic/es-ql (Team:QL) |
Pinging @elastic/elasticsearch-esql (:Query Languages/ES|QL) |
#99961 fixes this by preventing filter pushdown for filters unsupported in Lucene. I will iterate on this to find similar unsupported filter pushdowns (and need to add more tests). |
There is an analogous issue for floating point data types. This is harder to solve, unfortunately, so I created a dedicated issue for it: #100130 |
Prevent pushing down filters for binary comparisons that would implicitly compare a byte/short/int with an out of range value. This leads to exceptions thrown by Lucene - instead, evaluate the filter in ESQL only. This does not cover the same problem for half_float/scaled_float/float, see elastic#100130. Closes elastic#99960.
Pinging @elastic/es-analytics-geo (Team:Analytics) |
Elasticsearch Version
main@cc42ff62b30b266dd715ae6ab203b790dfc8fe23
Installed Plugins
No response
Java Version
openjdk version "17.0.8" 2023-07-18
OS Version
Ubuntu 23.04
Problem Description
Running
from employees | where emp_no == 1000000000000
will push the filter to Lucene, which fails with"reason": "failed to create query: Value [1000000000000] is out of range for an integer"
This succeeds if the filter is not pushed down (with expected no results):
from employees | eval x = emp_no == 1000000000000 | where x
.Steps to Reproduce
Run the query from above for an index
employees
with anInteger
fieldemp_no
.Logs (if relevant)
No response
The text was updated successfully, but these errors were encountered: