summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authoraelkin/elkin@andrepl.(none) <>2007-03-23 17:12:58 +0200
committeraelkin/elkin@andrepl.(none) <>2007-03-23 17:12:58 +0200
commit2afa90b5c5cb0c48f3ecceed7ba1e9eaf05576a4 (patch)
tree69b3937c478753aaf68e93fe328ccf451a4ab2f6 /sql/sql_table.cc
parent0114c0a733d74775ff17d72285339a65c0bc9689 (diff)
downloadmariadb-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.cc2
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));