Changes to make ALTER TABLE and DELETE FROM TABLE work properly
with BEGIN WORK.
This commit is contained in:
parent
aacaaf5922
commit
4647982ee9
@ -141,7 +141,8 @@ int mysql_delete(THD *thd,TABLE_LIST *table_list,COND *conds,ha_rows limit,
|
|||||||
use_generate_table= (!using_limit && !conds &&
|
use_generate_table= (!using_limit && !conds &&
|
||||||
!(specialflag &
|
!(specialflag &
|
||||||
(SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) &&
|
(SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) &&
|
||||||
(thd->options & OPTION_AUTO_COMMIT));
|
(thd->options & OPTION_AUTO_COMMIT) &&
|
||||||
|
!(thd->options & OPTION_BEGIN));
|
||||||
if (use_generate_table && ! thd->open_tables)
|
if (use_generate_table && ! thd->open_tables)
|
||||||
{
|
{
|
||||||
error=generate_table(thd,table_list,(TABLE*) 0);
|
error=generate_table(thd,table_list,(TABLE*) 0);
|
||||||
|
@ -1150,7 +1150,8 @@ mysql_execute_command(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ALTER TABLE ends previous transaction */
|
/* ALTER TABLE ends previous transaction */
|
||||||
if (!(thd->options & OPTION_AUTO_COMMIT) && ha_commit(thd))
|
if ((!(thd->options & OPTION_AUTO_COMMIT) ||
|
||||||
|
(thd->options & OPTION_BEGIN)) && ha_commit(thd))
|
||||||
res= -1;
|
res= -1;
|
||||||
else
|
else
|
||||||
res= mysql_alter_table(thd, lex->db, lex->name,
|
res= mysql_alter_table(thd, lex->db, lex->name,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user