Loading mysql-test/r/innodb.result +1 −0 Original line number Diff line number Diff line Loading @@ -821,6 +821,7 @@ truncate table t1; Can't execute the given command because you have active locked tables or an active transaction commit; truncate table t1; truncate table t1; select * from t1; a insert into t1 values(1),(2); Loading mysql-test/t/innodb.test +1 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ insert into t1 values(1),(2); truncate table t1; commit; truncate table t1; truncate table t1; select * from t1; insert into t1 values(1),(2); delete from t1; Loading sql/sql_delete.cc +6 −2 Original line number Diff line number Diff line Loading @@ -590,8 +590,12 @@ int mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok) { /* Probably InnoDB table */ table_list->lock_type= TL_WRITE; DBUG_RETURN(mysql_delete(thd, table_list, (COND*) 0, (ORDER*) 0, HA_POS_ERROR, 0)); ulong save_options= thd->options; thd->options&= ~(ulong) (OPTION_BEGIN | OPTION_NOT_AUTOCOMMIT); int res= mysql_delete(thd, table_list, (COND*) 0, (ORDER*) 0, HA_POS_ERROR, 0); thd->options= save_options; DBUG_RETURN(res); } if (lock_and_wait_for_table_name(thd, table_list)) DBUG_RETURN(-1); Loading Loading
mysql-test/r/innodb.result +1 −0 Original line number Diff line number Diff line Loading @@ -821,6 +821,7 @@ truncate table t1; Can't execute the given command because you have active locked tables or an active transaction commit; truncate table t1; truncate table t1; select * from t1; a insert into t1 values(1),(2); Loading
mysql-test/t/innodb.test +1 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,7 @@ insert into t1 values(1),(2); truncate table t1; commit; truncate table t1; truncate table t1; select * from t1; insert into t1 values(1),(2); delete from t1; Loading
sql/sql_delete.cc +6 −2 Original line number Diff line number Diff line Loading @@ -590,8 +590,12 @@ int mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok) { /* Probably InnoDB table */ table_list->lock_type= TL_WRITE; DBUG_RETURN(mysql_delete(thd, table_list, (COND*) 0, (ORDER*) 0, HA_POS_ERROR, 0)); ulong save_options= thd->options; thd->options&= ~(ulong) (OPTION_BEGIN | OPTION_NOT_AUTOCOMMIT); int res= mysql_delete(thd, table_list, (COND*) 0, (ORDER*) 0, HA_POS_ERROR, 0); thd->options= save_options; DBUG_RETURN(res); } if (lock_and_wait_for_table_name(thd, table_list)) DBUG_RETURN(-1); Loading