Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.11.5, 11.1.2, 11.3.0, 10.10(EOL)
-
Official docker images
Description
Hello,
when I run same query with different indexes (USE INDEX to force another index), I get completely different results. I discovered this issue after upgrade to version 10.11, some queries started to return nonsense. Does work correctly in <10.11.
This fiddle shows the code but does not exhibit the problem (version 10.9 is not affected) - https://dbfiddle.uk/eJwzXdgt both queries returns the same value. But when I run this in 10.11 or 11.1, first query returns all NULLs (invalid result), second query returns valid results.
Queries differ only in index used.
SELECT |
(
|
SELECT |
SUM(ps3.quantity) |
FROM |
products_stores ps3 USE INDEX (products_stores_id_store_id_product_id_variation_uindex) |
WHERE |
ps3.id_product = p.id AND ps3.id_variation <=> ps.id_variation AND ps3.id_store = 1 |
) AS store3_quantity |
FROM
|
products_stores ps
|
LEFT JOIN products p ON |
p.id = ps.id_product;
|
Attachments
Issue Links
- is duplicated by
-
MDEV-32090 Index does not handle null-safe equals operator correctly in join
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Hello,
when I run same query with different indexes (USE INDEX to force another index), I get completely different results. I discovered this issue after version 10.11 upgrade, some queries started to return nonsense. Does work correctly in <10.11. This fiddle shows the code but does not exhibit the problem (version 10.9 is not affected) - https://dbfiddle.uk/eJwzXdgt both queries returns the same value. But when I run this in 10.11 or 11.1, first query returns all NULLs (invalid result), second query returns valid results. Queries differ only in index used. {code:sql} SELECT ( SELECT SUM(ps3.quantity) FROM products_stores ps3 USE INDEX (products_stores_id_store_id_product_id_variation_uindex) WHERE ps3.id_product = p.id AND ps3.id_variation <=> ps.id_variation AND ps3.id_store = 1 ) AS store3_quantity FROM products_stores ps LEFT JOIN products p ON p.id = ps.id_product; {code} |
Hello,
when I run same query with different indexes (USE INDEX to force another index), I get completely different results. I discovered this issue after upgrade to version 10.11, some queries started to return nonsense. Does work correctly in <10.11. This fiddle shows the code but does not exhibit the problem (version 10.9 is not affected) - https://dbfiddle.uk/eJwzXdgt both queries returns the same value. But when I run this in 10.11 or 11.1, first query returns all NULLs (invalid result), second query returns valid results. Queries differ only in index used. {code:sql} SELECT ( SELECT SUM(ps3.quantity) FROM products_stores ps3 USE INDEX (products_stores_id_store_id_product_id_variation_uindex) WHERE ps3.id_product = p.id AND ps3.id_variation <=> ps.id_variation AND ps3.id_store = 1 ) AS store3_quantity FROM products_stores ps LEFT JOIN products p ON p.id = ps.id_product; {code} |
Affects Version/s | 11.3.0 [ 29302 ] |
Affects Version/s | 10.10 [ 27530 ] |
Labels | index wrong_result | index regression-10.10 wrong_result |
Fix Version/s | 10.10 [ 27530 ] | |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 11.0 [ 28320 ] | |
Fix Version/s | 11.1 [ 28549 ] | |
Fix Version/s | 11.2 [ 28603 ] |
Assignee | Sergei Golubchik [ serg ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Summary | Different results when using different indexes | wrong result with join, index, and a partially null-rejecting condition |
Summary | wrong result with join, index, and a partially null-rejecting condition | wrong result with an index and a partially null-rejecting condition |
Assignee | Sergei Golubchik [ serg ] | Sergei Petrunia [ psergey ] |
Status | Stalled [ 10000 ] | In Review [ 10002 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Status | In Review [ 10002 ] | In Testing [ 10301 ] |
Assignee | Sergei Petrunia [ psergey ] | Sergei Golubchik [ serg ] |
Fix Version/s | 10.10.7 [ 29018 ] | |
Fix Version/s | 10.11.6 [ 29020 ] | |
Fix Version/s | 11.0.4 [ 29021 ] | |
Fix Version/s | 11.1.3 [ 29023 ] | |
Fix Version/s | 11.2.2 [ 29035 ] | |
Fix Version/s | 10.10 [ 27530 ] | |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 11.0 [ 28320 ] | |
Fix Version/s | 11.1 [ 28549 ] | |
Fix Version/s | 11.2 [ 28603 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Testing [ 10301 ] | Closed [ 6 ] |
Link |
This issue is duplicated by |
Same happens with very latest - 11.3.0 - quay.io/mariadb-foundation/mariadb-devel:verylatest