mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3879. Added a new functions to handler API to forcefully abort_transaction, producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These were added for future possiblity to add more storage engines that could use galera replication.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2002, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2013, Monty Program Ab
|
||||
Copyright (c) 2008, 2014, Monty Program Ab
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -117,6 +117,7 @@ When one supplies long data for a placeholder:
|
||||
#include "lock.h" // MYSQL_OPEN_FORCE_SHARED_MDL
|
||||
#include "sql_handler.h"
|
||||
#include "transaction.h" // trans_rollback_implicit
|
||||
#include "wsrep_mysqld.h"
|
||||
|
||||
/**
|
||||
A result class used to send cursor rows using the binary protocol.
|
||||
@ -3626,6 +3627,27 @@ reexecute:
|
||||
error= execute(expanded_query, open_cursor) || thd->is_error();
|
||||
|
||||
thd->m_reprepare_observer= NULL;
|
||||
#ifdef WITH_WSREP
|
||||
|
||||
if (WSREP_ON)
|
||||
{
|
||||
mysql_mutex_lock(&thd->LOCK_wsrep_thd);
|
||||
switch (thd->wsrep_conflict_state)
|
||||
{
|
||||
case CERT_FAILURE:
|
||||
WSREP_DEBUG("PS execute fail for CERT_FAILURE: thd: %ld err: %d",
|
||||
thd->thread_id, thd->get_stmt_da()->sql_errno() );
|
||||
thd->wsrep_conflict_state = NO_CONFLICT;
|
||||
break;
|
||||
|
||||
case MUST_REPLAY:
|
||||
(void)wsrep_replay_transaction(thd);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
mysql_mutex_unlock(&thd->LOCK_wsrep_thd);
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
|
||||
if ((sql_command_flags[lex->sql_command] & CF_REEXECUTION_FRAGILE) &&
|
||||
error && !thd->is_fatal_error && !thd->killed &&
|
||||
|
Reference in New Issue
Block a user