Commit ec4a7522 authored by unknown's avatar unknown
Browse files

Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0

into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug21013

parents 51dddb3a ca00a985
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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;
+27 −0
Original line number Diff line number Diff line
@@ -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
#
+3 −2
Original line number Diff line number Diff line
@@ -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);