Bad estimate of the number of rows in derived table with LIMIT clause
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
Medium
|
Igor Babaev |
Bug Description
If the table expression for a derived table contains a LIMIT clause then the estimate of the number of rows read from the derived table may be badly off in mariadb-5.3:
MariaDB [test]> create table t1 (a int);
Query OK, 0 rows affected (0.02 sec)
MariaDB [test]> insert into t1 values
-> (8), (3), (4), (7), (9), (5), (1), (2);
Query OK, 8 rows affected (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
MariaDB [test]> select * from (select * from t1 limit 3) t;
+------+
| a |
+------+
| 8 |
| 3 |
| 4 |
+------+
3 rows in set (0.00 sec)
MariaDB [test]> explain select * from (select * from t1 limit 3) t;
+----+-
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-
| 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 8 | |
| 2 | DERIVED | t1 | ALL | NULL | NULL | NULL | NULL | 8 | |
+----+-
2 rows in set (0.00 sec)
Changed in maria: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
assignee: | nobody → Igor Babaev (igorb-seattle) |
milestone: | none → 5.3 |
Changed in maria: | |
status: | Fix Committed → Fix Released |
Lp bug #916551 is a duplicate of this bug.