Loading mysql-test/r/sp.result +43 −0 Original line number Diff line number Diff line Loading @@ -3532,4 +3532,47 @@ select @a| Local drop function bug13941| drop procedure bug13941| DROP PROCEDURE IF EXISTS bug13095; DROP TABLE IF EXISTS bug13095_t1; DROP VIEW IF EXISTS bug13095_v1; CREATE PROCEDURE bug13095(tbl_name varchar(32)) BEGIN SET @str = CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))"); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" ); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SELECT * FROM bug13095_v1; SET @str = "DROP VIEW bug13095_v1"; SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; END| CALL bug13095('bug13095_t1'); @str CREATE TABLE bug13095_t1(stuff char(15)) @str INSERT INTO bug13095_t1 VALUES('row1'),('row2'),('row3') @str CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM bug13095_t1 c1 row1 row2 row3 @str DROP VIEW bug13095_v1 DROP PROCEDURE IF EXISTS bug13095; DROP VIEW IF EXISTS bug13095_v1; DROP TABLE IF EXISTS bug13095_t1; drop table t1,t2; mysql-test/t/disabled.def +1 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,4 @@ rpl_relayrotate : Unstable test case, bug#12429 rpl_until : Unstable test case, bug#12429 rpl_deadlock : Unstable test case, bug#12429 kill : Unstable test case, bug#9712 federated : Broken test case, bug#14272 mysql-test/t/sp.test +56 −0 Original line number Diff line number Diff line Loading @@ -4433,6 +4433,62 @@ drop function bug13941| drop procedure bug13941| # # BUG#13095: Cannot create VIEWs in prepared statements # delimiter ;| --disable_warnings DROP PROCEDURE IF EXISTS bug13095; DROP TABLE IF EXISTS bug13095_t1; DROP VIEW IF EXISTS bug13095_v1; --enable_warnings delimiter |; CREATE PROCEDURE bug13095(tbl_name varchar(32)) BEGIN SET @str = CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))"); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" ); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SELECT * FROM bug13095_v1; SET @str = "DROP VIEW bug13095_v1"; SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; END| delimiter ;| CALL bug13095('bug13095_t1'); --disable_warnings DROP PROCEDURE IF EXISTS bug13095; DROP VIEW IF EXISTS bug13095_v1; DROP TABLE IF EXISTS bug13095_t1; --enable_warnings delimiter |; # # BUG#NNNN: New bug synopsis # Loading sql/ha_innodb.cc +1 −0 Original line number Diff line number Diff line Loading @@ -6811,6 +6811,7 @@ ha_innobase::store_lock( || thd->lex->sql_command == SQLCOM_CALL) && !thd->tablespace_op && thd->lex->sql_command != SQLCOM_TRUNCATE && thd->lex->sql_command != SQLCOM_OPTIMIZE && thd->lex->sql_command != SQLCOM_CREATE_TABLE) { lock_type = TL_WRITE_ALLOW_WRITE; Loading sql/sql_lex.h +1 −0 Original line number Diff line number Diff line Loading @@ -738,6 +738,7 @@ typedef struct st_lex /* store original leaf_tables for INSERT SELECT and PS/SP */ TABLE_LIST *leaf_tables_insert; st_lex_user *create_view_definer; char *create_view_start; char *create_view_select_start; List<key_part_spec> col_list; Loading Loading
mysql-test/r/sp.result +43 −0 Original line number Diff line number Diff line Loading @@ -3532,4 +3532,47 @@ select @a| Local drop function bug13941| drop procedure bug13941| DROP PROCEDURE IF EXISTS bug13095; DROP TABLE IF EXISTS bug13095_t1; DROP VIEW IF EXISTS bug13095_v1; CREATE PROCEDURE bug13095(tbl_name varchar(32)) BEGIN SET @str = CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))"); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" ); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SELECT * FROM bug13095_v1; SET @str = "DROP VIEW bug13095_v1"; SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; END| CALL bug13095('bug13095_t1'); @str CREATE TABLE bug13095_t1(stuff char(15)) @str INSERT INTO bug13095_t1 VALUES('row1'),('row2'),('row3') @str CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM bug13095_t1 c1 row1 row2 row3 @str DROP VIEW bug13095_v1 DROP PROCEDURE IF EXISTS bug13095; DROP VIEW IF EXISTS bug13095_v1; DROP TABLE IF EXISTS bug13095_t1; drop table t1,t2;
mysql-test/t/disabled.def +1 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,4 @@ rpl_relayrotate : Unstable test case, bug#12429 rpl_until : Unstable test case, bug#12429 rpl_deadlock : Unstable test case, bug#12429 kill : Unstable test case, bug#9712 federated : Broken test case, bug#14272
mysql-test/t/sp.test +56 −0 Original line number Diff line number Diff line Loading @@ -4433,6 +4433,62 @@ drop function bug13941| drop procedure bug13941| # # BUG#13095: Cannot create VIEWs in prepared statements # delimiter ;| --disable_warnings DROP PROCEDURE IF EXISTS bug13095; DROP TABLE IF EXISTS bug13095_t1; DROP VIEW IF EXISTS bug13095_v1; --enable_warnings delimiter |; CREATE PROCEDURE bug13095(tbl_name varchar(32)) BEGIN SET @str = CONCAT("CREATE TABLE ", tbl_name, "(stuff char(15))"); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("INSERT INTO ", tbl_name, " VALUES('row1'),('row2'),('row3')" ); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SET @str = CONCAT("CREATE VIEW bug13095_v1(c1) AS SELECT stuff FROM ", tbl_name); SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; SELECT * FROM bug13095_v1; SET @str = "DROP VIEW bug13095_v1"; SELECT @str; PREPARE stmt FROM @str; EXECUTE stmt; END| delimiter ;| CALL bug13095('bug13095_t1'); --disable_warnings DROP PROCEDURE IF EXISTS bug13095; DROP VIEW IF EXISTS bug13095_v1; DROP TABLE IF EXISTS bug13095_t1; --enable_warnings delimiter |; # # BUG#NNNN: New bug synopsis # Loading
sql/ha_innodb.cc +1 −0 Original line number Diff line number Diff line Loading @@ -6811,6 +6811,7 @@ ha_innobase::store_lock( || thd->lex->sql_command == SQLCOM_CALL) && !thd->tablespace_op && thd->lex->sql_command != SQLCOM_TRUNCATE && thd->lex->sql_command != SQLCOM_OPTIMIZE && thd->lex->sql_command != SQLCOM_CREATE_TABLE) { lock_type = TL_WRITE_ALLOW_WRITE; Loading
sql/sql_lex.h +1 −0 Original line number Diff line number Diff line Loading @@ -738,6 +738,7 @@ typedef struct st_lex /* store original leaf_tables for INSERT SELECT and PS/SP */ TABLE_LIST *leaf_tables_insert; st_lex_user *create_view_definer; char *create_view_start; char *create_view_select_start; List<key_part_spec> col_list; Loading