--source include/have_partition.inc --disable_abort_on_error let $ENG1= MyISAM; # InnoDB gets the same problem # NDB does not show this bug. --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1_master; --enable_warnings CREATE TABLE t1_master ( f3 DECIMAL (5,3)); --echo --echo # The "problem" table. --echo # Attention: A table without partitioning is harmless. eval CREATE TABLE t1 ( i1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (i1), f1 INT, f2 CHAR(15), f3 DECIMAL (5,3), f4 DATETIME ) ENGINE=$ENG1 PARTITION BY HASH(i1) PARTITIONS 2; INSERT INTO t1_master SET f3=50; INSERT INTO t1_master SET f3=50; delimiter //; create procedure ins_t1 () BEGIN DECLARE done INT DEFAULT 0; DECLARE v3 DECIMAL(5,3); DECLARE cur1 CURSOR FOR SELECT f3 FROM t1_master; DECLARE CONTINUE HANDLER FOR SQLSTATE '01000' SET done = 1; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1; FETCH cur1 INTO v3; wl_loop: WHILE NOT done DO INSERT INTO t1 (f3) VALUES (v3 ); FETCH cur1 INTO v3; END WHILE wl_loop; CLOSE cur1; END// delimiter ;// --echo --echo # The non working stored procedure CALL ins_t1();