diff options
Diffstat (limited to 'storage/innobase/handler/ha_innodb.cc')
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 443e1ae9b91..253a1a7279b 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12767,7 +12767,7 @@ int create_table_info_t::create_table(bool create_fk) if (err == DB_SUCCESS) { /* Check that also referencing constraints are ok */ dict_names_t fk_tables; - err = dict_load_foreigns(m_table_name, nullptr, false, + err = dict_load_foreigns(m_table_name, nullptr, m_trx->id, true, DICT_ERR_IGNORE_NONE, fk_tables); while (err == DB_SUCCESS && !fk_tables.empty()) { @@ -18685,7 +18685,10 @@ wsrep_abort_transaction( ut_ad(bf_thd); ut_ad(victim_thd); + wsrep_thd_kill_LOCK(victim_thd); + wsrep_thd_LOCK(victim_thd); trx_t* victim_trx= thd_to_trx(victim_thd); + wsrep_thd_UNLOCK(victim_thd); WSREP_DEBUG("abort transaction: BF: %s victim: %s victim conf: %s", wsrep_thd_query(bf_thd), @@ -18695,7 +18698,6 @@ wsrep_abort_transaction( if (victim_trx) { victim_trx->lock.set_wsrep_victim(); - wsrep_thd_kill_LOCK(victim_thd); wsrep_thd_LOCK(victim_thd); bool aborting= !wsrep_thd_set_wsrep_aborter(bf_thd, victim_thd); wsrep_thd_UNLOCK(victim_thd); @@ -18712,8 +18714,6 @@ wsrep_abort_transaction( };); wsrep_thd_bf_abort(bf_thd, victim_thd, signal); } - wsrep_thd_kill_UNLOCK(victim_thd); - DBUG_VOID_RETURN; } else { DBUG_EXECUTE_IF("sync.before_wsrep_thd_abort", { @@ -18724,11 +18724,10 @@ wsrep_abort_transaction( DBUG_ASSERT(!debug_sync_set_action(bf_thd, STRING_WITH_LEN(act))); };); - wsrep_thd_kill_LOCK(victim_thd); wsrep_thd_bf_abort(bf_thd, victim_thd, signal); - wsrep_thd_kill_UNLOCK(victim_thd); } + wsrep_thd_kill_UNLOCK(victim_thd); DBUG_VOID_RETURN; } @@ -20142,7 +20141,7 @@ innobase_rename_vc_templ( for purge thread. */ -bool innobase_allocate_row_for_vcol(THD *thd, dict_index_t *index, +bool innobase_allocate_row_for_vcol(THD *thd, const dict_index_t *index, mem_heap_t **heap, TABLE **table, VCOL_STORAGE *storage) { |