Loading mysql-test/r/ps.result +21 −0 Original line number Diff line number Diff line Loading @@ -1291,6 +1291,27 @@ EXECUTE stmt USING @a; i j i i j DEALLOCATE PREPARE stmt; DROP TABLE IF EXISTS t1, t2, t3; DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (i INT KEY); CREATE TABLE t2 (i INT); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1); PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i WHERE t1.i = ?"; SET @arg= 1; EXECUTE stmt USING @arg; i 1 SET @arg= 2; EXECUTE stmt USING @arg; i NULL SET @arg= 1; EXECUTE stmt USING @arg; i 1 DEALLOCATE PREPARE stmt; DROP TABLE t1, t2; End of 5.0 tests. create procedure proc_1() reset query cache; call proc_1(); Loading mysql-test/t/ps.test +27 −0 Original line number Diff line number Diff line Loading @@ -1358,6 +1358,33 @@ DEALLOCATE PREPARE stmt; DROP TABLE IF EXISTS t1, t2, t3; # # BUG#21081: SELECT inside stored procedure returns wrong results # --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings CREATE TABLE t1 (i INT KEY); CREATE TABLE t2 (i INT); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1); PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i WHERE t1.i = ?"; SET @arg= 1; EXECUTE stmt USING @arg; SET @arg= 2; EXECUTE stmt USING @arg; SET @arg= 1; EXECUTE stmt USING @arg; DEALLOCATE PREPARE stmt; DROP TABLE t1, t2; --echo End of 5.0 tests. # Loading sql/item.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3795,6 +3795,7 @@ void Item_field::cleanup() I.e. we can drop 'field'. */ field= result_field= 0; null_value= FALSE; DBUG_VOID_RETURN; } Loading Loading
mysql-test/r/ps.result +21 −0 Original line number Diff line number Diff line Loading @@ -1291,6 +1291,27 @@ EXECUTE stmt USING @a; i j i i j DEALLOCATE PREPARE stmt; DROP TABLE IF EXISTS t1, t2, t3; DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (i INT KEY); CREATE TABLE t2 (i INT); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1); PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i WHERE t1.i = ?"; SET @arg= 1; EXECUTE stmt USING @arg; i 1 SET @arg= 2; EXECUTE stmt USING @arg; i NULL SET @arg= 1; EXECUTE stmt USING @arg; i 1 DEALLOCATE PREPARE stmt; DROP TABLE t1, t2; End of 5.0 tests. create procedure proc_1() reset query cache; call proc_1(); Loading
mysql-test/t/ps.test +27 −0 Original line number Diff line number Diff line Loading @@ -1358,6 +1358,33 @@ DEALLOCATE PREPARE stmt; DROP TABLE IF EXISTS t1, t2, t3; # # BUG#21081: SELECT inside stored procedure returns wrong results # --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings CREATE TABLE t1 (i INT KEY); CREATE TABLE t2 (i INT); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1); PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i WHERE t1.i = ?"; SET @arg= 1; EXECUTE stmt USING @arg; SET @arg= 2; EXECUTE stmt USING @arg; SET @arg= 1; EXECUTE stmt USING @arg; DEALLOCATE PREPARE stmt; DROP TABLE t1, t2; --echo End of 5.0 tests. # Loading
sql/item.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3795,6 +3795,7 @@ void Item_field::cleanup() I.e. we can drop 'field'. */ field= result_field= 0; null_value= FALSE; DBUG_VOID_RETURN; } Loading