mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merged revisions 3425..3430 from mariadb-galera-5.5
This commit is contained in:
@ -2951,7 +2951,12 @@ void MDL_context::release_locks_stored_before(enum_mdl_duration duration,
|
|||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WITH_WSREP
|
||||||
|
void MDL_context::release_explicit_locks()
|
||||||
|
{
|
||||||
|
release_locks_stored_before(MDL_EXPLICIT, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
Release all explicit locks in the context which correspond to the
|
Release all explicit locks in the context which correspond to the
|
||||||
same name/object as this lock request.
|
same name/object as this lock request.
|
||||||
|
@ -782,6 +782,9 @@ public:
|
|||||||
|
|
||||||
void release_statement_locks();
|
void release_statement_locks();
|
||||||
void release_transactional_locks();
|
void release_transactional_locks();
|
||||||
|
#ifdef WITH_WSREP
|
||||||
|
void release_explicit_locks();
|
||||||
|
#endif
|
||||||
void rollback_to_savepoint(const MDL_savepoint &mdl_savepoint);
|
void rollback_to_savepoint(const MDL_savepoint &mdl_savepoint);
|
||||||
|
|
||||||
MDL_context_owner *get_owner() { return m_owner; }
|
MDL_context_owner *get_owner() { return m_owner; }
|
||||||
|
@ -8617,6 +8617,9 @@ static void wsrep_client_rollback(THD *thd)
|
|||||||
/* Release transactional metadata locks. */
|
/* Release transactional metadata locks. */
|
||||||
thd->mdl_context.release_transactional_locks();
|
thd->mdl_context.release_transactional_locks();
|
||||||
|
|
||||||
|
/* release explicit MDL locks */
|
||||||
|
thd->mdl_context.release_explicit_locks();
|
||||||
|
|
||||||
if (thd->get_binlog_table_maps())
|
if (thd->get_binlog_table_maps())
|
||||||
{
|
{
|
||||||
WSREP_DEBUG("clearing binlog table map for BF abort (%ld)", thd->thread_id);
|
WSREP_DEBUG("clearing binlog table map for BF abort (%ld)", thd->thread_id);
|
||||||
@ -8790,11 +8793,11 @@ static inline wsrep_status_t wsrep_apply_rbr(
|
|||||||
DBUG_RETURN(WSREP_FATAL);
|
DBUG_RETURN(WSREP_FATAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev->get_type_code() != TABLE_MAP_EVENT &&
|
if ((ev->get_type_code() == WRITE_ROWS_EVENT ||
|
||||||
|
ev->get_type_code() == UPDATE_ROWS_EVENT ||
|
||||||
|
ev->get_type_code() == DELETE_ROWS_EVENT) &&
|
||||||
((Rows_log_event *) ev)->get_flags(Rows_log_event::STMT_END_F))
|
((Rows_log_event *) ev)->get_flags(Rows_log_event::STMT_END_F))
|
||||||
{
|
{
|
||||||
// TODO: combine with commit on higher level common for the query ws
|
|
||||||
|
|
||||||
thd->wsrep_rli->cleanup_context(thd, 0);
|
thd->wsrep_rli->cleanup_context(thd, 0);
|
||||||
|
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
|
@ -714,7 +714,7 @@ bool wsrep_start_replication()
|
|||||||
uint64_t caps = wsrep->capabilities (wsrep);
|
uint64_t caps = wsrep->capabilities (wsrep);
|
||||||
|
|
||||||
wsrep_incremental_data_collection =
|
wsrep_incremental_data_collection =
|
||||||
(caps & WSREP_CAP_WRITE_SET_INCREMENTS);
|
!!(caps & WSREP_CAP_WRITE_SET_INCREMENTS);
|
||||||
|
|
||||||
char* opts= wsrep->options_get(wsrep);
|
char* opts= wsrep->options_get(wsrep);
|
||||||
if (opts)
|
if (opts)
|
||||||
@ -1254,6 +1254,12 @@ int wsrep_to_isolation_begin(THD *thd, char *db_, char *table_,
|
|||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
thd->wsrep_exec_mode= TOTAL_ORDER;
|
thd->wsrep_exec_mode= TOTAL_ORDER;
|
||||||
|
/* It makes sense to set auto_increment_* to defaults in TOI operations */
|
||||||
|
if (wsrep_auto_increment_control)
|
||||||
|
{
|
||||||
|
thd->variables.auto_increment_offset = 1;
|
||||||
|
thd->variables.auto_increment_increment = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user