diff options
author | aelkin/elkin@andrepl.(none) <> | 2007-03-23 17:12:58 +0200 |
---|---|---|
committer | aelkin/elkin@andrepl.(none) <> | 2007-03-23 17:12:58 +0200 |
commit | 2afa90b5c5cb0c48f3ecceed7ba1e9eaf05576a4 (patch) | |
tree | 69b3937c478753aaf68e93fe328ccf451a4ab2f6 /sql/sql_table.cc | |
parent | 0114c0a733d74775ff17d72285339a65c0bc9689 (diff) | |
download | mariadb-git-2afa90b5c5cb0c48f3ecceed7ba1e9eaf05576a4.tar.gz |
Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF()
thd->options' OPTION_STATUS_NO_TRANS_UPDATE bit was not restored at the end of SF() invocation, where
SF() modified non-ta table.
As the result of this artifact it was not possible to detect whether there were any side-effects when
top-level query ends.
If the top level query table was not modified and the bit is lost there would be no binlogging.
Fixed with preserving the bit inside of thd->no_trans_update struct. The struct agregates two bool flags
telling whether the current query and the current transaction modified any non-ta table.
The flags stmt, all are dropped at the end of the query and the transaction.
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 14b9e0aa25d..98b12cc1de4 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3968,7 +3968,7 @@ copy_data_between_tables(TABLE *from,TABLE *to, alter_table_manage_keys(to, from->file->indexes_are_disabled(), keys_onoff); /* We can abort alter table for any table type */ - thd->no_trans_update= 0; + thd->no_trans_update.stmt= FALSE; thd->abort_on_warning= !ignore && test(thd->variables.sql_mode & (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES)); |