diff options
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 8bc00e40051..51f37aa4f06 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -7760,7 +7760,8 @@ report_error: if (!error_result && wsrep_thd_exec_mode(user_thd) == LOCAL_STATE && wsrep_on(user_thd) && - !wsrep_consistency_check(user_thd)) + !wsrep_consistency_check(user_thd) && + !wsrep_thd_skip_append_keys(user_thd)) { if (wsrep_append_keys(user_thd, false, record, NULL)) { @@ -8278,10 +8279,11 @@ func_exit: innobase_active_small(); #ifdef WITH_WSREP - if (error == DB_SUCCESS && + if (error == DB_SUCCESS && wsrep_thd_exec_mode(user_thd) == LOCAL_STATE && - wsrep_on(user_thd)) { - + wsrep_on(user_thd) && + !wsrep_thd_skip_append_keys(user_thd)) + { DBUG_PRINT("wsrep", ("update row key")); if (wsrep_append_keys(user_thd, false, old_row, new_row)) { @@ -8343,10 +8345,11 @@ ha_innobase::delete_row( innobase_active_small(); #ifdef WITH_WSREP - if (error == DB_SUCCESS && - wsrep_thd_exec_mode(user_thd) == LOCAL_STATE && - wsrep_on(user_thd)) { - + if (error == DB_SUCCESS && + wsrep_thd_exec_mode(user_thd) == LOCAL_STATE && + wsrep_on(user_thd) && + !wsrep_thd_skip_append_keys(user_thd)) + { if (wsrep_append_keys(user_thd, false, record, NULL)) { DBUG_PRINT("wsrep", ("delete fail")); error = (dberr_t)HA_ERR_INTERNAL_ERROR; |