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
|
||||
1 select Kabel mit Stecker 5-polig,Kabel ohne Stecker
|
||||
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
|
||||
|
@@ -125,4 +125,14 @@ ORDER BY id DESC;
|
||||
|
||||
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
|
||||
|
||||
|
@@ -3144,6 +3144,7 @@ JOIN::destroy()
|
||||
*/
|
||||
tmp_table_param.cleanup();
|
||||
tmp_join->tmp_table_param.copy_field= 0;
|
||||
cleanup(1);
|
||||
DBUG_RETURN(tmp_join->destroy());
|
||||
}
|
||||
cond_equal= 0;
|
||||
|
Reference in New Issue
Block a user