62
62
TransactionalStorageEngine(const std::string name_arg,
63
const std::bitset<HTON_BIT_SIZE> &flags_arg= HTON_NO_FLAGS,
64
bool two_phase_commit= false);
63
const std::bitset<HTON_BIT_SIZE> &flags_arg= HTON_NO_FLAGS);
66
65
virtual ~TransactionalStorageEngine();
68
int startTransaction(Session *session, start_transaction_option_t options)
67
virtual int startTransaction(Session *session, start_transaction_option_t options)
70
69
TransactionServices &transaction_services= TransactionServices::singleton();
71
transaction_services.registerResourceForTransaction(session, this);
70
transaction_services.registerResourceForTransaction(session, this, this);
72
71
return doStartTransaction(session, options);
75
void startStatement(Session *session)
74
virtual void startStatement(Session *session)
77
76
TransactionServices &transaction_services= TransactionServices::singleton();
78
transaction_services.registerResourceForStatement(session, this);
77
transaction_services.registerResourceForStatement(session, this, this);
79
78
doStartStatement(session);
82
int commit(Session *session, bool normal_transaction)
81
virtual int commit(Session *session, bool normal_transaction)
84
83
return doCommit(session, normal_transaction);
87
int rollback(Session *session, bool normal_transaction)
86
virtual int rollback(Session *session, bool normal_transaction)
89
88
return doRollback(session, normal_transaction);
104
103
return doReleaseSavepoint(session, sp);
107
bool hasTwoPhaseCommit()
109
return two_phase_commit;
107
* The below are simple virtual overrides for the plugin::MonitoredInTransaction
110
virtual bool participatesInSqlTransaction() const
112
return true; /* We DO participate in the SQL transaction */
114
virtual bool participatesInXaTransaction() const
116
return false; /* We DON'T participate in the XA transaction */
118
virtual bool alwaysRegisterForXaTransaction() const