diff options
Diffstat (limited to 'sql/sql_sequence.cc')
-rw-r--r-- | sql/sql_sequence.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sql/sql_sequence.cc b/sql/sql_sequence.cc index 60da595afd0..fdb9c647727 100644 --- a/sql/sql_sequence.cc +++ b/sql/sql_sequence.cc @@ -1011,10 +1011,19 @@ bool Sql_cmd_alter_sequence::execute(THD *thd) else table->file->print_error(error, MYF(0)); seq->write_unlock(table); - if (trans_commit_stmt(thd)) - error= 1; - if (trans_commit_implicit(thd)) - error= 1; + { + wait_for_commit* suspended_wfc= thd->suspend_subsequent_commits(); + if (trans_commit_stmt(thd)) + error= 1; + if (trans_commit_implicit(thd)) + error= 1; + thd->resume_subsequent_commits(suspended_wfc); + DBUG_EXECUTE_IF("hold_worker_on_schedule", + { + /* delay binlogging of a parent trx in rpl_parallel_seq */ + my_sleep(100000); + }); + } if (likely(!error)) error= write_bin_log(thd, 1, thd->query(), thd->query_length()); if (likely(!error)) |