Loading mysql-test/r/sp.result +11 −0 Original line number Diff line number Diff line Loading @@ -4811,6 +4811,17 @@ begin declare x int; select id from t1 order by x; end| drop procedure if exists bug14945| create table t3 (id int not null auto_increment primary key)| create procedure bug14945() deterministic truncate t3| insert into t3 values (null)| call bug14945()| insert into t3 values (null)| select * from t3| id 1 drop table t3| drop procedure bug14945| create procedure bug16474_2(x int) select id from t1 order by x| call bug16474_1()| Loading mysql-test/t/sp.test +15 −0 Original line number Diff line number Diff line Loading @@ -5666,6 +5666,21 @@ begin select id from t1 order by x; end| # # BUG#14945: Truncate table doesn't reset the auto_increment counter # --disable_warnings drop procedure if exists bug14945| --enable_warnings create table t3 (id int not null auto_increment primary key)| create procedure bug14945() deterministic truncate t3| insert into t3 values (null)| call bug14945()| insert into t3 values (null)| select * from t3| drop table t3| drop procedure bug14945| # This does NOT order by column index; variable is an expression. create procedure bug16474_2(x int) select id from t1 order by x| Loading sql/sql_delete.cc +1 −2 Original line number Diff line number Diff line Loading @@ -842,8 +842,7 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok) table_list->db, table_list->table_name); DBUG_RETURN(TRUE); } if (!ha_check_storage_engine_flag(table_type, HTON_CAN_RECREATE) || thd->lex->sphead) if (!ha_check_storage_engine_flag(table_type, HTON_CAN_RECREATE)) goto trunc_by_del; if (lock_and_wait_for_table_name(thd, table_list)) DBUG_RETURN(TRUE); Loading sql/sql_parse.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,7 @@ mysql_execute_command(THD *thd) Don't allow this within a transaction because we want to use re-generate table */ if ((thd->locked_tables && !lex->sphead) || thd->active_transaction()) if (thd->locked_tables || thd->active_transaction()) { my_message(ER_LOCK_OR_ACTIVE_TRANSACTION, ER(ER_LOCK_OR_ACTIVE_TRANSACTION), MYF(0)); Loading Loading
mysql-test/r/sp.result +11 −0 Original line number Diff line number Diff line Loading @@ -4811,6 +4811,17 @@ begin declare x int; select id from t1 order by x; end| drop procedure if exists bug14945| create table t3 (id int not null auto_increment primary key)| create procedure bug14945() deterministic truncate t3| insert into t3 values (null)| call bug14945()| insert into t3 values (null)| select * from t3| id 1 drop table t3| drop procedure bug14945| create procedure bug16474_2(x int) select id from t1 order by x| call bug16474_1()| Loading
mysql-test/t/sp.test +15 −0 Original line number Diff line number Diff line Loading @@ -5666,6 +5666,21 @@ begin select id from t1 order by x; end| # # BUG#14945: Truncate table doesn't reset the auto_increment counter # --disable_warnings drop procedure if exists bug14945| --enable_warnings create table t3 (id int not null auto_increment primary key)| create procedure bug14945() deterministic truncate t3| insert into t3 values (null)| call bug14945()| insert into t3 values (null)| select * from t3| drop table t3| drop procedure bug14945| # This does NOT order by column index; variable is an expression. create procedure bug16474_2(x int) select id from t1 order by x| Loading
sql/sql_delete.cc +1 −2 Original line number Diff line number Diff line Loading @@ -842,8 +842,7 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok) table_list->db, table_list->table_name); DBUG_RETURN(TRUE); } if (!ha_check_storage_engine_flag(table_type, HTON_CAN_RECREATE) || thd->lex->sphead) if (!ha_check_storage_engine_flag(table_type, HTON_CAN_RECREATE)) goto trunc_by_del; if (lock_and_wait_for_table_name(thd, table_list)) DBUG_RETURN(TRUE); Loading
sql/sql_parse.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3350,7 +3350,7 @@ mysql_execute_command(THD *thd) Don't allow this within a transaction because we want to use re-generate table */ if ((thd->locked_tables && !lex->sphead) || thd->active_transaction()) if (thd->locked_tables || thd->active_transaction()) { my_message(ER_LOCK_OR_ACTIVE_TRANSACTION, ER(ER_LOCK_OR_ACTIVE_TRANSACTION), MYF(0)); Loading