diff options
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r-- | sql/sql_class.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index 819342a8aa1..844db884c05 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -4370,7 +4370,16 @@ public: { main_lex.restore_set_statement_var(); } - + /* Copy relevant `stmt` transaction flags to `all` transaction. */ + void merge_unsafe_rollback_flags() + { + if (transaction.stmt.modified_non_trans_table) + transaction.all.modified_non_trans_table= TRUE; + transaction.all.m_unsafe_rollback_flags|= + (transaction.stmt.m_unsafe_rollback_flags & + (THD_TRANS::DID_WAIT | THD_TRANS::CREATED_TEMP_TABLE | + THD_TRANS::DROPPED_TEMP_TABLE | THD_TRANS::DID_DDL)); + } /* Reset current_linfo Setting current_linfo to 0 needs to be done with LOCK_thread_count to |