diff options
author | Gleb Shchepa <gshchepa@mysql.com> | 2009-05-12 22:42:31 +0500 |
---|---|---|
committer | Gleb Shchepa <gshchepa@mysql.com> | 2009-05-12 22:42:31 +0500 |
commit | bd59628754d7f6ced2c19286c041b1ee5ce354e0 (patch) | |
tree | 1ecbe032ef7a19d000c1849e7374679dce97c01e /sql/sql_select.cc | |
parent | 206bdd67c67fb28c014b873ac6732e99139d31c4 (diff) | |
download | mariadb-git-bd59628754d7f6ced2c19286c041b1ee5ce354e0.tar.gz |
Bug #44290: explain crashes for subquery with distinct in
SQL_SELECT::test_quick_select
The crash was caused by an incomplete cleanup of JOIN_TAB::select
during the filesort of rows for GROUP BY clause inside a subquery.
Queries where a quick index access is replaced with filesort was
was affected. For example:
SELECT 1 FROM
(SELECT COUNT(DISTINCT c1) FROM t1
WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x
Quick index access related data in the SQL_SELECT::test_quick_select
function was inconsistent after an incomplete cleanup.
This function has been completed to prevent crashes in the
SQL_SELECT::test_quick_select function.
mysql-test/include/mix1.inc:
Add test case for bug #44290.
mysql-test/r/innodb_mysql.result:
Add test case for bug #44290.
sql/sql_select.cc:
Bug #44290: explain crashes for subquery with distinct in
SQL_SELECT::test_quick_select
Quick index access related data in the SQL_SELECT::test_quick_select
function was inconsistent after an incomplete cleanup.
This function has been completed to prevent crashes in the
SQL_SELECT::test_quick_select function.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index cdae1581a0c..ab9c060c69c 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13481,6 +13481,7 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order, { select->cleanup(); // filesort did select tab->select= 0; + table->quick_keys.clear_all(); // as far as we cleanup select->quick } tab->select_cond=0; tab->last_inner= 0; |