mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21013
This commit is contained in:
@@ -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;
|
||||
|
@@ -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
|
||||
#
|
||||
|
@@ -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)
|
||||
{
|
||||
@@ -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);
|
||||
|
Reference in New Issue
Block a user