Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
DELETE over a table containing a virtual column with ORDER BY an index and with a LIMIT clause may return wrong results
if the WHERE clause contains a condition for the virtual column:
MariaDB [test]> create table t1 (a int, b int, v int as (a+1), index idx(b));
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> insert into t1(a, b) values (4, 40), (3, 30), (5, 50), (7, 70), (8, 80), (2, 20), (1, 10);
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0
MariaDB [test]> select * from t1 order by b;
--------------
| a | b | v |
--------------
| 1 | 10 | 2 |
| 2 | 20 | 3 |
| 3 | 30 | 4 |
| 4 | 40 | 5 |
| 5 | 50 | 6 |
| 7 | 70 | 8 |
| 8 | 80 | 9 |
--------------
7 rows in set (0.00 sec)
MariaDB [test]> delete from t1 where v > 6 order by b limit 1;
Query OK, 0 rows affected (6.19 sec)
MariaDB [test]> select * from t1;
--------------
| a | b | v |
--------------
| 4 | 40 | 5 |
| 3 | 30 | 4 |
| 5 | 50 | 6 |
| 7 | 70 | 8 |
| 8 | 80 | 9 |
| 2 | 20 | 3 |
| 1 | 10 | 2 |
--------------
7 rows in set (0.00 sec)
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Re: Wrong result for DELETE over a table with a virtual column
This bug can be observed in current MariaDB 5.2