24#ifndef MYSQL_TRANSACTION_H 
   25#define MYSQL_TRANSACTION_H 
   36#if defined(MYSQL_SERVER) || defined(PFS_DIRECT_CALL) 
   41#ifndef PSI_TRANSACTION_CALL 
   42#define PSI_TRANSACTION_CALL(M) psi_transaction_service->M 
   51#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   52#define MYSQL_START_TRANSACTION(STATE, XID, TRXID, ISO, RO, AC)            \ 
   53  inline_mysql_start_transaction(STATE, XID, TRXID, ISO, RO, AC, __FILE__, \ 
   56#define MYSQL_START_TRANSACTION(STATE, XID, TRXID, ISO, RO, AC) \ 
   61#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   62#define MYSQL_SET_TRANSACTION_GTID(LOCKER, P1, P2) \ 
   63  inline_mysql_set_transaction_gtid(LOCKER, P1, P2) 
   65#define MYSQL_SET_TRANSACTION_GTID(LOCKER, P1, P2) \ 
   70#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   71#define MYSQL_SET_TRANSACTION_XID(LOCKER, P1, P2) \ 
   72  inline_mysql_set_transaction_xid(LOCKER, P1, P2) 
   74#define MYSQL_SET_TRANSACTION_XID(LOCKER, P1, P2) \ 
   79#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   80#define MYSQL_SET_TRANSACTION_XA_STATE(LOCKER, P1) \ 
   81  inline_mysql_set_transaction_xa_state(LOCKER, P1) 
   83#define MYSQL_SET_TRANSACTION_XA_STATE(LOCKER, P1) \ 
   88#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   89#define MYSQL_SET_TRANSACTION_TRXID(LOCKER, P1) \ 
   90  inline_mysql_set_transaction_trxid(LOCKER, P1) 
   92#define MYSQL_SET_TRANSACTION_TRXID(LOCKER, P1) \ 
   97#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
   98#define MYSQL_INC_TRANSACTION_SAVEPOINTS(LOCKER, P1) \ 
   99  inline_mysql_inc_transaction_savepoints(LOCKER, P1) 
  101#define MYSQL_INC_TRANSACTION_SAVEPOINTS(LOCKER, P1) \ 
  106#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
  107#define MYSQL_INC_TRANSACTION_ROLLBACK_TO_SAVEPOINT(LOCKER, P1) \ 
  108  inline_mysql_inc_transaction_rollback_to_savepoint(LOCKER, P1) 
  110#define MYSQL_INC_TRANSACTION_ROLLBACK_TO_SAVEPOINT(LOCKER, P1) \ 
  115#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
  116#define MYSQL_INC_TRANSACTION_RELEASE_SAVEPOINT(LOCKER, P1) \ 
  117  inline_mysql_inc_transaction_release_savepoint(LOCKER, P1) 
  119#define MYSQL_INC_TRANSACTION_RELEASE_SAVEPOINT(LOCKER, P1) \ 
  124#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
  125#define MYSQL_ROLLBACK_TRANSACTION(LOCKER) \ 
  126  inline_mysql_rollback_transaction(LOCKER) 
  128#define MYSQL_ROLLBACK_TRANSACTION(LOCKER) NULL 
  131#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
  132#define MYSQL_COMMIT_TRANSACTION(LOCKER) inline_mysql_commit_transaction(LOCKER) 
  134#define MYSQL_COMMIT_TRANSACTION(LOCKER) NULL 
  137#ifdef HAVE_PSI_TRANSACTION_INTERFACE 
  141    bool autocommit, 
const char *src_file, 
int src_line) {
 
  145  if (
likely(locker != 
nullptr)) {
 
  153  if (
likely(locker != 
nullptr)) {
 
  160  if (
likely(locker != 
nullptr)) {
 
  167  if (
likely(locker != 
nullptr)) {
 
  174  if (
likely(locker != 
nullptr)) {
 
  181  if (
likely(locker != 
nullptr)) {
 
  188  if (
likely(locker != 
nullptr)) {
 
  195  if (
likely(locker != 
nullptr)) {
 
  202  if (
likely(locker != 
nullptr)) {
 
  209  if (
likely(locker != 
nullptr)) {
 
#define PSI_TRANSACTION_CALL(M)
Definition: psi_transaction.h:36
 
struct PSI_transaction_locker PSI_transaction_locker
Definition: psi_transaction_bits.h:41
 
static void inline_mysql_set_transaction_xid(PSI_transaction_locker *locker, const void *xid, int xa_state)
Definition: mysql_transaction.h:158
 
static void inline_mysql_set_transaction_trxid(PSI_transaction_locker *locker, const ulonglong *trxid)
Definition: mysql_transaction.h:172
 
static void inline_mysql_inc_transaction_release_savepoint(PSI_transaction_locker *locker, ulong count)
Definition: mysql_transaction.h:193
 
static struct PSI_transaction_locker * inline_mysql_start_transaction(PSI_transaction_locker_state *state, const void *xid, const ulonglong *trxid, int isolation_level, bool read_only, bool autocommit, const char *src_file, int src_line)
Definition: mysql_transaction.h:138
 
static void inline_mysql_set_transaction_gtid(PSI_transaction_locker *locker, const void *sid, const void *gtid_spec)
Definition: mysql_transaction.h:151
 
static void inline_mysql_rollback_transaction(struct PSI_transaction_locker *locker)
Definition: mysql_transaction.h:200
 
static void inline_mysql_set_transaction_xa_state(PSI_transaction_locker *locker, int xa_state)
Definition: mysql_transaction.h:165
 
static void inline_mysql_commit_transaction(struct PSI_transaction_locker *locker)
Definition: mysql_transaction.h:207
 
static void inline_mysql_inc_transaction_rollback_to_savepoint(PSI_transaction_locker *locker, ulong count)
Definition: mysql_transaction.h:186
 
static void inline_mysql_inc_transaction_savepoints(PSI_transaction_locker *locker, ulong count)
Definition: mysql_transaction.h:179
 
constexpr bool likely(bool expr)
Definition: my_compiler.h:57
 
Some integer typedefs for easier portability.
 
unsigned long long int ulonglong
Definition: my_inttypes.h:56
 
static int count
Definition: myisam_ftdump.cc:45
 
static int start_transaction(MYSQL *mysql_con)
Definition: mysqldump.cc:5507
 
constexpr value_type read_only
Definition: classic_protocol_constants.h:213
 
constexpr value_type autocommit
Definition: classic_protocol_constants.h:152
 
bool end_transaction(THD *thd, bool error)
Helper function to do rollback or commit, depending on error.
Definition: utils.cc:181
 
Performance schema instrumentation (declarations).
 
Performance schema instrumentation interface.
 
State data storage for get_thread_transaction_locker_v1_t, get_thread_transaction_locker_v1_t.
Definition: psi_transaction_bits.h:53