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:
parent
c32d3e16f3
commit
822fb79799
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user