Commit b3dad934 authored by unknown's avatar unknown
Browse files

Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0

into  april.(none):/home/svoj/devel/mysql/BUG14945/mysql-5.0

parents 9a1d80e9 ee3cf23b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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()|
+15 −0
Original line number Diff line number Diff line
@@ -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|
+1 −2
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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));