Open normanj-bitquill opened 4 weeks ago
It looks like the OpenSearch engine is doing the sorting, not the SQL plugin.
Using the index and data from the description:
POST test3/_search
{
"size": 10,
"sort": {
"y": {
"order": "asc"
}
}
}
Produces this response:
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 5,
"relation": "eq"
},
"max_score": null,
"hits": [
{
"_index": "test3",
"_id": "ATXWtZIB72QJDYYHLMzM",
"_score": null,
"_source": {
"x": 1,
"y": [
1,
2
]
},
"sort": [
1
]
},
{
"_index": "test3",
"_id": "AzXWtZIB72QJDYYHqczI",
"_score": null,
"_source": {
"x": 3,
"y": [
1,
5
]
},
"sort": [
1
]
},
{
"_index": "test3",
"_id": "BDXWtZIB72QJDYYHy8wa",
"_score": null,
"_source": {
"x": 4,
"y": [
1,
2
]
},
"sort": [
1
]
},
{
"_index": "test3",
"_id": "Q6i4xJIBxt0sLj_lfLXQ",
"_score": null,
"_source": {
"x": 5,
"y": [
2,
3
]
},
"sort": [
2
]
},
{
"_index": "test3",
"_id": "AjXWtZIB72QJDYYHXszf",
"_score": null,
"_source": {
"x": 2,
"y": [
3,
4
]
},
"sort": [
3
]
}
]
}
}
What is the bug? When a field that contains array values is used in an ORDER BY clause, the comparisons are performed using only the first element of the array values.
Consider an index with the following data:
and this query:
the expected results are:
How can one reproduce the bug? Steps to reproduce the behavior:
What is the expected behavior? Comparisons are performed on the array values as a whole. An array comparison is performed element by element until a difference is found.
What is your host/environment?
Do you have any screenshots? N/A
Do you have any additional context? Issue #1300 had a change recently merged in that allows array values to be used in query evaluation and in the result set.