WL#5073: Create SQL command classes for transaction statements
Status: In-Progress
Create classes derived from Sql_cmd that represent all supported transaction commands. This is a subtask of WL#5047. The functionality is partly covered by sp_trans.test, xa.test and consistent_snapshot.test. A new test file transactions.test that performs comprehensive syntax check of all transactional commands (except XA commands) will be added.
1. Classes used to represent transaction commands
These classes will be created as derived from Sql_cmd.
The classes are defined in sql_cmd_transaction.h and implemented in
sql_cmd_transaction.cc.
1.1 Class Sql_cmd_start
Command: START TRANSACTION and BEGIN
Member: m_options - specification for the new transaction
(WITH CONISTENT SNAPSHOT).
1.2 Class Sql_cmd_commit
Command: COMMIT WORK
Member: m_chain - Whether to start new transaction immediately
Member: m_release - Whether to release session after commit
1.3 Class Sql_cmd_rollback
Command: ROLLBACK WORK
Member: m_chain - Whether to start new transaction immediately
Member: m_release - Whether to release session after rollback
1.4 Class Sql_cmd_set_savepoint
Command: SAVEPOINT
Member: m_savepoint - Name of savepoint
1.5 Class Sql_cmd_rollback_savepoint
Command: ROLLBACK SAVEPOINT
Member: m_savepoint - Name of savepoint
1.6 Class Sql_cmd_release_savepoint
Command: RELEASE SAVEPOINT
Member: m_savepoint - Name of savepoint
1.7 Class Sql_cmd_xa_start
Command: XA START and XA BEGIN
Member: m_xid: Reference to XID to start
Member: m_options: Options, whether to JOIN or RESUME
1.8 Class Sql_cmd_xa_end
Command: XA END
Member: m_xid: Reference to XID to end
Member: m_options: Options, whether to SUSPEND
1.9 Class Sql_cmd_xa_prepare
Command: XA PREPARE
Member: m_xid: Reference to XID to prepare
1.10 Class Sql_cmd_xa_commit
Command: XA COMMIT
Member: m_xid: Reference to XID to commit
Member: m_options: Options, whether to commit in one phase
1.11 Class Sql_cmd_xa_rollback
Command: XA ROLLBACK
Member: m_xid: Reference to XID to rollback
1.12 Class Sql_cmd_xa_recover
Command: XA RECOVER
2. Support classes
These are additional classes used by transaction classes.
2.1 Class Xa_options
Wrapper class for enum used to enumerate options specified to XA commands.
No LLD required in this task.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.