Commit 2b11450d authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge branch '11.1' into 11.2

parents 12b01d74 3e3a3261
...@@ -194,11 +194,7 @@ ELSE() ...@@ -194,11 +194,7 @@ ELSE()
ENDIF() ENDIF()
IF("${MYSQL_NO_DASH_VERSION}" VERSION_LESS 11.2) SET(MEMPROTECT_DEFAULT ON)
SET(MEMPROTECT_DEFAULT ON)
ELSE()
SET(MEMPROTECT_DEFAULT OFF)
ENDIF()
OPTION(WITH_PROTECT_STATEMENT_MEMROOT "Enable protection of statement's memory root after first SP/PS execution. Turned into account only for debug build" OPTION(WITH_PROTECT_STATEMENT_MEMROOT "Enable protection of statement's memory root after first SP/PS execution. Turned into account only for debug build"
${MEMPROTECT_DEFAULT}) ${MEMPROTECT_DEFAULT})
......
...@@ -149,6 +149,20 @@ DROP TABLE t1; ...@@ -149,6 +149,20 @@ DROP TABLE t1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
# End of 10.11 tests # End of 10.11 tests
# #
# MDEV-34649: Memory leaks on running DELETE statement in PS mode with positional parameters
#
CREATE TABLE t1 (a INT, b VARCHAR(30)) CHARSET=utf8mb4;
INSERT INTO t1 VALUES (1, 'one'), (0, NULL), (3, 'three'), (4, 'four');
PREPARE stmt FROM 'DELETE FROM t1 WHERE b=?' ;
SET @arg00=NULL;
EXECUTE stmt USING @arg00;
SET @arg00='one';
EXECUTE stmt USING @arg00;
# Clean up
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
# End of 11.1
#
# MDEV-34517: Memory leak on re-compilation of a failing statement inside a stored routine # MDEV-34517: Memory leak on re-compilation of a failing statement inside a stored routine
# #
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
......
...@@ -168,6 +168,24 @@ DROP PROCEDURE p1; ...@@ -168,6 +168,24 @@ DROP PROCEDURE p1;
--echo # End of 10.11 tests --echo # End of 10.11 tests
--echo #
--echo # MDEV-34649: Memory leaks on running DELETE statement in PS mode with positional parameters
--echo #
CREATE TABLE t1 (a INT, b VARCHAR(30)) CHARSET=utf8mb4;
INSERT INTO t1 VALUES (1, 'one'), (0, NULL), (3, 'three'), (4, 'four');
PREPARE stmt FROM 'DELETE FROM t1 WHERE b=?' ;
SET @arg00=NULL;
EXECUTE stmt USING @arg00;
SET @arg00='one';
# Without the patch, attempt to run the same prepared statement the second time
# would result in memory leaks
EXECUTE stmt USING @arg00;
--echo # Clean up
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
--echo # End of 11.1
--echo # --echo #
--echo # MDEV-34517: Memory leak on re-compilation of a failing statement inside a stored routine --echo # MDEV-34517: Memory leak on re-compilation of a failing statement inside a stored routine
--echo # --echo #
......
...@@ -912,6 +912,7 @@ bool Sql_cmd_delete::delete_from_single_table(THD *thd) ...@@ -912,6 +912,7 @@ bool Sql_cmd_delete::delete_from_single_table(THD *thd)
{ {
thd->lex->current_select->save_leaf_tables(thd); thd->lex->current_select->save_leaf_tables(thd);
thd->lex->current_select->leaf_tables_saved= true; thd->lex->current_select->leaf_tables_saved= true;
thd->lex->current_select->first_cond_optimization= false;
} }
delete deltempfile; delete deltempfile;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment