mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-11162 Assertion `num_records == m_idx_array.size()' failed in Filesort_buffer::alloc_sort_buffer(uint, uint)
When JOIN::destroy() is called for a JOIN object that has - join->tmp_join != NULL - also has join->table[0]->sort then the latter was not cleaned up. This could cause a memory leak and/or asserts in the subsequent queries. Fixed by adding a cleanup call.
This commit is contained in:
@@ -123,4 +123,11 @@ id xtext optionen
|
|||||||
2 number 22,25
|
2 number 22,25
|
||||||
1 select Kabel mit Stecker 5-polig,Kabel ohne Stecker
|
1 select Kabel mit Stecker 5-polig,Kabel ohne Stecker
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
|
||||||
|
SELECT ( SELECT DISTINCT GROUP_CONCAT(SLEEP(0)) FROM t1 GROUP BY i );
|
||||||
|
( SELECT DISTINCT GROUP_CONCAT(SLEEP(0)) FROM t1 GROUP BY i )
|
||||||
|
NULL
|
||||||
|
SELECT i FROM t1 order by i LIMIT 1;
|
||||||
|
i
|
||||||
|
DROP TABLE t1;
|
||||||
# End of tests
|
# End of tests
|
||||||
|
@@ -125,4 +125,14 @@ ORDER BY id DESC;
|
|||||||
|
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-11162: Assertion `num_records == m_idx_array.size()' failed in Filesort_buffer::alloc_sort_buffer(uint, uint)
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
|
||||||
|
SELECT ( SELECT DISTINCT GROUP_CONCAT(SLEEP(0)) FROM t1 GROUP BY i );
|
||||||
|
SELECT i FROM t1 order by i LIMIT 1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo # End of tests
|
--echo # End of tests
|
||||||
|
|
||||||
|
@@ -3144,6 +3144,7 @@ JOIN::destroy()
|
|||||||
*/
|
*/
|
||||||
tmp_table_param.cleanup();
|
tmp_table_param.cleanup();
|
||||||
tmp_join->tmp_table_param.copy_field= 0;
|
tmp_join->tmp_table_param.copy_field= 0;
|
||||||
|
cleanup(1);
|
||||||
DBUG_RETURN(tmp_join->destroy());
|
DBUG_RETURN(tmp_join->destroy());
|
||||||
}
|
}
|
||||||
cond_equal= 0;
|
cond_equal= 0;
|
||||||
|
Reference in New Issue
Block a user