Loading mysql-test/r/ps.result +21 −0 Original line number Diff line number Diff line Loading @@ -1311,4 +1311,25 @@ 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. mysql-test/t/ps.test +27 −0 Original line number Diff line number Diff line Loading @@ -1358,4 +1358,31 @@ 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. sql/item.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3744,6 +3744,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 @@ -1311,4 +1311,25 @@ 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.
mysql-test/t/ps.test +27 −0 Original line number Diff line number Diff line Loading @@ -1358,4 +1358,31 @@ 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.
sql/item.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3744,6 +3744,7 @@ void Item_field::cleanup() I.e. we can drop 'field'. */ field= result_field= 0; null_value= FALSE; DBUG_VOID_RETURN; } Loading