MySQL 9.1.0
Source Code Documentation
Sql_cmd_xa_rollback Class Reference

This class represents the XA ROLLBACK ... SQL statement which rollbacks and terminates an XA transaction with the given xid value. More...

#include <sql_xa_rollback.h>

Inheritance diagram for Sql_cmd_xa_rollback:
[legend]

Public Member Functions

 Sql_cmd_xa_rollback (xid_t *xid_arg)
 Class constructor. More...
 
virtual ~Sql_cmd_xa_rollback () override=default
 
enum_sql_command sql_command_code () const override
 Retrieves the SQL command code for this class, SQLCOM_XA_ROLLBACK. More...
 
bool execute (THD *thd) override
 Executes the SQL command. More...
 
- Public Member Functions inherited from Sql_cmd_xa_second_phase
 Sql_cmd_xa_second_phase (xid_t *xid_arg)
 Class constructor. More...
 
virtual ~Sql_cmd_xa_second_phase () override=default
 
- Public Member Functions inherited from Sql_cmd
bool needs_explicit_preparation () const
 
bool is_regular () const
 
bool is_prepared () const
 
virtual bool prepare (THD *)
 Prepare this SQL statement. More...
 
virtual bool reprepare_on_execute_required () const
 Some SQL commands currently require re-preparation on re-execution of a prepared statement or stored procedure. More...
 
virtual void cleanup (THD *)
 Command-specific reinitialization before execution of prepared statement. More...
 
void set_owner (Prepared_statement *stmt)
 Set the owning prepared statement. More...
 
Prepared_statementowner () const
 Get the owning prepared statement. More...
 
void set_as_part_of_sp ()
 Mark statement as part of procedure. More...
 
bool is_part_of_sp () const
 
virtual enum enum_sql_cmd_type sql_cmd_type () const
 
virtual bool is_single_table_plan () const
 
virtual bool accept (THD *, Select_lex_visitor *)
 
virtual const MYSQL_LEX_CSTRINGeligible_secondary_storage_engine (THD *) const
 Is this statement of a type and on a form that makes it eligible for execution in a secondary storage engine? More...
 
virtual bool is_bulk_load () const
 
virtual bool are_dynamic_parameters_allowed () const
 
void disable_secondary_storage_engine ()
 Disable use of secondary storage engines in this statement. More...
 
void enable_secondary_storage_engine ()
 
bool secondary_storage_engine_disabled () const
 Has use of secondary storage engines been disabled for this statement? More...
 
void use_secondary_storage_engine (const handlerton *hton)
 Mark the current statement as using a secondary storage engine. More...
 
bool using_secondary_storage_engine () const
 Is this statement using a secondary storage engine? More...
 
const handlertonsecondary_engine () const
 Get the handlerton of the secondary engine that is used for executing this statement, or nullptr if a secondary engine is not used. More...
 
void set_optional_transform_prepared (bool value)
 
bool is_optional_transform_prepared ()
 

Private Member Functions

bool trans_xa_rollback (THD *thd)
 Roll back and terminate a XA transaction. More...
 
bool process_attached_xa_rollback (THD *thd) const
 Handle the statement XA ROLLBACK for the case when xid corresponds to an XA transaction that is attached to the thread's THD object, that is a transaction that is part of the current thread's session context. More...
 
bool process_detached_xa_rollback (THD *thd)
 Handle the statement XA ROLLBACK for the case when xid corresponds to an XA transaction that is detached from the thread's THD, that it a transaction that isn't part of the current's thread session context. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Sql_cmd_xa_second_phase
bool find_and_initialize_xa_context (THD *thd)
 Tries to find and initialize the Transaction_ctx for the underlying detached XA transaction. More...
 
bool acquire_locks (THD *thd)
 Tries to acquire the locks necessary to finalize the underlying detached XA transaction. More...
 
void release_locks () const
 Release any locks acquires in acquire_locks still needing to be released. More...
 
void setup_thd_context (THD *thd)
 Initializes the necessary parts of the thd parameter, transferring some of the detached XA transaction context to the active session. More...
 
bool enter_commit_order (THD *thd)
 For replica applier threads, enters the wait on the commit order. More...
 
void assign_xid_to_thd (THD *thd) const
 Sets the XID_STATE of the THD session object parameter as in detached state and copies into it the XID of the detached XA transaction. More...
 
void exit_commit_order (THD *thd) const
 For replica applier threads, finishes the wait on the commit order and allows other threads to proceed. More...
 
void cleanup_context (THD *thd) const
 Cleans up the THD context in order to prepare it for re-use. More...
 
void dispose ()
 Disposes of member variables that need it, because destructors for Sql_cmd classes aren't invoked (since they are created in the internal memory pool, memory is disposed as a all block). More...
 
- Protected Member Functions inherited from Sql_cmd
 Sql_cmd ()
 
virtual ~Sql_cmd ()
 
void set_prepared ()
 Set this statement as prepared. More...
 
- Protected Attributes inherited from Sql_cmd_xa_second_phase
xid_tm_xid {nullptr}
 The XID associated with the underlying XA transaction. More...
 
MDL_savepoint m_mdl_savepoint
 The MDL savepoint used to rollback the MDL context when transient errors occur. More...
 
std::shared_ptr< Transaction_ctxm_detached_trx_context {nullptr}
 The detached transaction context, retrieved from the transaction cache. More...
 
bool m_gtid_error {false}
 Whether or not the initialization of GTIDs returned an error. More...
 
bool m_need_clear_owned_gtid {false}
 Whether or not the OWNED_GTID related structures need to be cleaned. More...
 
bool m_result {false}
 The incremental success of the several initialization and deinitialization steps. More...
 

Detailed Description

This class represents the XA ROLLBACK ... SQL statement which rollbacks and terminates an XA transaction with the given xid value.

See also
Sql_cmd

Constructor & Destructor Documentation

◆ Sql_cmd_xa_rollback()

Sql_cmd_xa_rollback::Sql_cmd_xa_rollback ( xid_t xid_arg)
explicit

Class constructor.

Parameters
xid_argXID of the XA transacation about to be rolled back.

◆ ~Sql_cmd_xa_rollback()

virtual Sql_cmd_xa_rollback::~Sql_cmd_xa_rollback ( )
overridevirtualdefault

Member Function Documentation

◆ execute()

bool Sql_cmd_xa_rollback::execute ( THD thd)
overridevirtual

Executes the SQL command.

See also
Sql_cmd::execute
Parameters
thdThe THD session object within which the command is being executed.
Returns
false if the execution is successful, true otherwise.

Implements Sql_cmd.

◆ process_attached_xa_rollback()

bool Sql_cmd_xa_rollback::process_attached_xa_rollback ( THD thd) const
private

Handle the statement XA ROLLBACK for the case when xid corresponds to an XA transaction that is attached to the thread's THD object, that is a transaction that is part of the current thread's session context.

Parameters
thdThe THD session object within which the command is being executed.
Returns
operation result
Return values
falseSuccess
trueFailure

◆ process_detached_xa_rollback()

bool Sql_cmd_xa_rollback::process_detached_xa_rollback ( THD thd)
private

Handle the statement XA ROLLBACK for the case when xid corresponds to an XA transaction that is detached from the thread's THD, that it a transaction that isn't part of the current's thread session context.

Parameters
thdThe THD session object within which the command is being executed.
Returns
operation result
Return values
falseSuccess
trueFailure

◆ sql_command_code()

enum_sql_command Sql_cmd_xa_rollback::sql_command_code ( ) const
overridevirtual

Retrieves the SQL command code for this class, SQLCOM_XA_ROLLBACK.

See also
Sql_cmd::sql_command_code
Returns
The SQL command code for this class, SQLCOM_XA_ROLLBACK.

Implements Sql_cmd.

◆ trans_xa_rollback()

bool Sql_cmd_xa_rollback::trans_xa_rollback ( THD thd)
private

Roll back and terminate a XA transaction.

Parameters
thdThe THD session object within which the command is being executed.
Return values
falseSuccess
trueFailure

The documentation for this class was generated from the following files: