ha_innobase.cc:

  Use current_thd to check if a transaction is done by a slave thread
parent 3dd3463f
...@@ -587,6 +587,16 @@ innobase_commit_low( ...@@ -587,6 +587,16 @@ innobase_commit_low(
/*================*/ /*================*/
trx_t* trx) /* in: transaction handle */ trx_t* trx) /* in: transaction handle */
{ {
if (current_thd->slave_thread) {
/* Update the replication position info inside InnoDB */
trx->mysql_master_log_file_name = glob_mi.log_file_name;
trx->mysql_master_log_pos = (ib_longlong)
(glob_mi.pos + glob_mi.event_len
+ glob_mi.pending);
}
trx_commit_for_mysql(trx); trx_commit_for_mysql(trx);
} }
...@@ -612,20 +622,6 @@ innobase_commit( ...@@ -612,20 +622,6 @@ innobase_commit(
trx = check_trx_exists(thd); trx = check_trx_exists(thd);
if (trx_handle != (void*)&innodb_dummy_stmt_trx_handle) { if (trx_handle != (void*)&innodb_dummy_stmt_trx_handle) {
if (thd->slave_thread) {
/* Update the replication position info inside
InnoDB. Note that we cannot presently do this for
CREATE TABLE etc. because MySQL does not tell us the
thd associated with those operations! */
trx->mysql_master_log_file_name =
glob_mi.log_file_name;
trx->mysql_master_log_pos = (ib_longlong)
(glob_mi.pos + glob_mi.event_len
+ glob_mi.pending);
}
innobase_commit_low(trx); innobase_commit_low(trx);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment