Loading mysql-test/r/sp.result +12 −0 Original line number Diff line number Diff line Loading @@ -5057,4 +5057,16 @@ concat('data was: /', var1, '/') data was: /1/ drop table t3| drop procedure bug15217| DROP PROCEDURE IF EXISTS bug21013 | CREATE PROCEDURE bug21013(IN lim INT) BEGIN DECLARE i INT DEFAULT 0; WHILE (i < lim) DO SET @b = LOCATE(_latin1'b', @a, 1); SET i = i + 1; END WHILE; END | SET @a = _latin2"aaaaaaaaaa" | CALL bug21013(10) | DROP PROCEDURE bug21013 | drop table t1,t2; mysql-test/t/sp.test +27 −0 Original line number Diff line number Diff line Loading @@ -5962,6 +5962,33 @@ call bug15217()| drop table t3| drop procedure bug15217| # # BUG#21013: Performance Degrades when importing data that uses # Trigger and Stored Procedure # # This is a performance and memory leak test. Run with large number # passed to bug21013() procedure. # --disable_warnings DROP PROCEDURE IF EXISTS bug21013 | --enable_warnings CREATE PROCEDURE bug21013(IN lim INT) BEGIN DECLARE i INT DEFAULT 0; WHILE (i < lim) DO SET @b = LOCATE(_latin1'b', @a, 1); SET i = i + 1; END WHILE; END | SET @a = _latin2"aaaaaaaaaa" | CALL bug21013(10) | DROP PROCEDURE bug21013 | # # BUG#NNNN: New bug synopsis # Loading sql/item.cc +3 −2 Original line number Diff line number Diff line Loading @@ -1418,7 +1418,8 @@ bool agg_item_charsets(DTCollation &coll, const char *fname, In case we're in statement prepare, create conversion item in its memory: it will be reused on each execute. */ arena= thd->activate_stmt_arena_if_needed(&backup); arena= thd->is_stmt_prepare() ? thd->activate_stmt_arena_if_needed(&backup) : NULL; for (i= 0, arg= args; i < nargs; i++, arg+= item_sep) { Loading Loading @@ -1453,7 +1454,7 @@ bool agg_item_charsets(DTCollation &coll, const char *fname, been created in prepare. In this case register the change for rollback. */ if (arena && arena->is_conventional()) if (arena) *arg= conv; else thd->change_item_tree(arg, conv); Loading Loading
mysql-test/r/sp.result +12 −0 Original line number Diff line number Diff line Loading @@ -5057,4 +5057,16 @@ concat('data was: /', var1, '/') data was: /1/ drop table t3| drop procedure bug15217| DROP PROCEDURE IF EXISTS bug21013 | CREATE PROCEDURE bug21013(IN lim INT) BEGIN DECLARE i INT DEFAULT 0; WHILE (i < lim) DO SET @b = LOCATE(_latin1'b', @a, 1); SET i = i + 1; END WHILE; END | SET @a = _latin2"aaaaaaaaaa" | CALL bug21013(10) | DROP PROCEDURE bug21013 | drop table t1,t2;
mysql-test/t/sp.test +27 −0 Original line number Diff line number Diff line Loading @@ -5962,6 +5962,33 @@ call bug15217()| drop table t3| drop procedure bug15217| # # BUG#21013: Performance Degrades when importing data that uses # Trigger and Stored Procedure # # This is a performance and memory leak test. Run with large number # passed to bug21013() procedure. # --disable_warnings DROP PROCEDURE IF EXISTS bug21013 | --enable_warnings CREATE PROCEDURE bug21013(IN lim INT) BEGIN DECLARE i INT DEFAULT 0; WHILE (i < lim) DO SET @b = LOCATE(_latin1'b', @a, 1); SET i = i + 1; END WHILE; END | SET @a = _latin2"aaaaaaaaaa" | CALL bug21013(10) | DROP PROCEDURE bug21013 | # # BUG#NNNN: New bug synopsis # Loading
sql/item.cc +3 −2 Original line number Diff line number Diff line Loading @@ -1418,7 +1418,8 @@ bool agg_item_charsets(DTCollation &coll, const char *fname, In case we're in statement prepare, create conversion item in its memory: it will be reused on each execute. */ arena= thd->activate_stmt_arena_if_needed(&backup); arena= thd->is_stmt_prepare() ? thd->activate_stmt_arena_if_needed(&backup) : NULL; for (i= 0, arg= args; i < nargs; i++, arg+= item_sep) { Loading Loading @@ -1453,7 +1454,7 @@ bool agg_item_charsets(DTCollation &coll, const char *fname, been created in prepare. In this case register the change for rollback. */ if (arena && arena->is_conventional()) if (arena) *arg= conv; else thd->change_item_tree(arg, conv); Loading