Browse Source
Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF()
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.pull/73/head
14 changed files with 140 additions and 69 deletions
-
32mysql-test/r/sp_trans.result
-
30mysql-test/t/sp_trans.test
-
3sql/ha_ndbcluster.cc
-
2sql/handler.cc
-
4sql/log.cc
-
5sql/set_var.cc
-
6sql/sp_head.cc
-
8sql/sql_class.h
-
4sql/sql_delete.cc
-
18sql/sql_insert.cc
-
16sql/sql_load.cc
-
31sql/sql_parse.cc
-
2sql/sql_table.cc
-
48sql/sql_update.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue