Wrong result for DELETE over a table with a virtual column

Bug #601164 reported by Igor Babaev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
High
Igor Babaev

Bug 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)

Revision history for this message
Sergey Petrunia (sergefp) wrote :

This bug can be observed in current MariaDB 5.2

Changed in maria:
status: New → Confirmed
Revision history for this message
Igor Babaev (igorb-seattle) wrote :

There is a similar problem for some UPDATEs.
For the same table as in the reported test case we have:

MariaDB [test]> update t1 set a=v order by b limit 1;
Query OK, 1 row affected (34.82 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [test]> select * from t1 order by b;
+------+------+------+
| a | b | v |
+------+------+------+
| NULL | 10 | NULL |
| 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)

Changed in maria:
importance: Undecided → High
Changed in maria:
assignee: nobody → Igor Babaev (igorb-seattle)
status: Confirmed → Fix Committed
Changed in maria:
milestone: none → 5.2
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.