Skip to main content

sqlstate/
mysql_like.rs

1//! The SQLSTATE codes MySQL 8.4 and MariaDB 11.8 report, taken from
2//! [`messages_to_clients.txt`](https://github.com/mysql/mysql-server/blob/mysql-8.4.6/share/messages_to_clients.txt)
3//! and [`errmsg-utf8.txt`](https://github.com/MariaDB/server/blob/11.8/sql/share/errmsg-utf8.txt).
4//!
5//! ```rust
6//! use sqlstate::{SqlState, mysql_like};
7//!
8//! let code: SqlState = "40001".parse().unwrap();
9//! assert!(matches!(code, mysql_like::SERIALIZATION_FAILURE));
10//! ```
11
12#[doc = r" `01000`, warning."]
pub const WARNING: crate::SqlState =
    crate::SqlState::new(*b"01000").expect("invalid SQLSTATE");
#[doc = r" `01S00`, SRS ID already exists warning. MySQL only."]
pub const WARN_SRS_ID_ALREADY_EXISTS: crate::SqlState =
    crate::SqlState::new(*b"01S00").expect("invalid SQLSTATE");
#[doc = r" `01S01`, reserved SRID range warning. MySQL only."]
pub const WARN_RESERVED_SRID_RANGE: crate::SqlState =
    crate::SqlState::new(*b"01S01").expect("invalid SQLSTATE");
#[doc = r" `02000`, no data."]
pub const NO_DATA: crate::SqlState =
    crate::SqlState::new(*b"02000").expect("invalid SQLSTATE");
#[doc = r" `08004`, SQL server rejected establishment of SQL connection."]
pub const SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION: crate::SqlState =
    crate::SqlState::new(*b"08004").expect("invalid SQLSTATE");
#[doc = r" `08S01`, communication link failure."]
pub const COMMUNICATION_LINK_FAILURE: crate::SqlState =
    crate::SqlState::new(*b"08S01").expect("invalid SQLSTATE");
#[doc = r" `0A000`, feature not supported."]
pub const FEATURE_NOT_SUPPORTED: crate::SqlState =
    crate::SqlState::new(*b"0A000").expect("invalid SQLSTATE");
#[doc = r" `0K000`, resignal when handler not active."]
pub const RESIGNAL_WHEN_HANDLER_NOT_ACTIVE: crate::SqlState =
    crate::SqlState::new(*b"0K000").expect("invalid SQLSTATE");
#[doc = r" `0L000`, invalid grantor. MariaDB only."]
pub const INVALID_GRANTOR: crate::SqlState =
    crate::SqlState::new(*b"0L000").expect("invalid SQLSTATE");
#[doc = r" `0Z002`, stacked diagnostics accessed without active handler."]
pub const STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER: crate::SqlState
    =
    crate::SqlState::new(*b"0Z002").expect("invalid SQLSTATE");
#[doc = r" `20000`, case not found for case statement."]
pub const CASE_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"20000").expect("invalid SQLSTATE");
#[doc = r" `21000`, cardinality violation."]
pub const CARDINALITY_VIOLATION: crate::SqlState =
    crate::SqlState::new(*b"21000").expect("invalid SQLSTATE");
#[doc = r" `21S01`, insert value list does not match column list."]
pub const INSERT_VALUE_LIST_DOES_NOT_MATCH_COLUMN_LIST: crate::SqlState =
    crate::SqlState::new(*b"21S01").expect("invalid SQLSTATE");
#[doc = r" `22001`, string data, right truncation."]
pub const STRING_DATA_RIGHT_TRUNCATION: crate::SqlState =
    crate::SqlState::new(*b"22001").expect("invalid SQLSTATE");
#[doc = r" `22003`, numeric value out of range."]
pub const NUMERIC_VALUE_OUT_OF_RANGE: crate::SqlState =
    crate::SqlState::new(*b"22003").expect("invalid SQLSTATE");
#[doc = r" `22004`, null value not allowed."]
pub const NULL_VALUE_NOT_ALLOWED: crate::SqlState =
    crate::SqlState::new(*b"22004").expect("invalid SQLSTATE");
#[doc = r" `22007`, invalid datetime format."]
pub const INVALID_DATETIME_FORMAT: crate::SqlState =
    crate::SqlState::new(*b"22007").expect("invalid SQLSTATE");
#[doc = r" `22008`, datetime field overflow."]
pub const DATETIME_FIELD_OVERFLOW: crate::SqlState =
    crate::SqlState::new(*b"22008").expect("invalid SQLSTATE");
#[doc = r" `22012`, division by zero."]
pub const DIVISION_BY_ZERO: crate::SqlState =
    crate::SqlState::new(*b"22012").expect("invalid SQLSTATE");
#[doc = r" `22018`, invalid character value for cast. MySQL only."]
pub const INVALID_CHARACTER_VALUE_FOR_CAST: crate::SqlState =
    crate::SqlState::new(*b"22018").expect("invalid SQLSTATE");
#[doc = r" `2201E`, invalid argument for natural logarithm."]
pub const INVALID_ARGUMENT_FOR_LOGARITHM: crate::SqlState =
    crate::SqlState::new(*b"2201E").expect("invalid SQLSTATE");
#[doc = r" `22023`, invalid parameter value."]
pub const INVALID_PARAMETER_VALUE: crate::SqlState =
    crate::SqlState::new(*b"22023").expect("invalid SQLSTATE");
#[doc = r" `2202H`, invalid tablesample argument. MySQL only."]
pub const INVALID_TABLESAMPLE_ARGUMENT: crate::SqlState =
    crate::SqlState::new(*b"2202H").expect("invalid SQLSTATE");
#[doc = r" `22032`, invalid JSON text. MySQL only."]
pub const INVALID_JSON_TEXT: crate::SqlState =
    crate::SqlState::new(*b"22032").expect("invalid SQLSTATE");
#[doc = r" `22034`, more than one SQL/JSON item. MySQL only."]
pub const MORE_THAN_ONE_SQL_JSON_ITEM: crate::SqlState =
    crate::SqlState::new(*b"22034").expect("invalid SQLSTATE");
#[doc = r" `22035`, no SQL/JSON item. MySQL only."]
pub const NO_SQL_JSON_ITEM: crate::SqlState =
    crate::SqlState::new(*b"22035").expect("invalid SQLSTATE");
#[doc = r" `2203F`, SQL/JSON scalar required. MySQL only."]
pub const SQL_JSON_SCALAR_REQUIRED: crate::SqlState =
    crate::SqlState::new(*b"2203F").expect("invalid SQLSTATE");
#[doc = r" `22S00`, unsupported SRS operation. MySQL only."]
pub const SRS_NOT_SUPPORTED: crate::SqlState =
    crate::SqlState::new(*b"22S00").expect("invalid SQLSTATE");
#[doc = r" `22S01`, unexpected geometry type. MySQL only."]
pub const UNEXPECTED_GEOMETRY_TYPE: crate::SqlState =
    crate::SqlState::new(*b"22S01").expect("invalid SQLSTATE");
#[doc = r" `22S02`, longitude out of range. MySQL only."]
pub const LONGITUDE_OUT_OF_RANGE: crate::SqlState =
    crate::SqlState::new(*b"22S02").expect("invalid SQLSTATE");
#[doc = r" `22S03`, latitude out of range. MySQL only."]
pub const LATITUDE_OUT_OF_RANGE: crate::SqlState =
    crate::SqlState::new(*b"22S03").expect("invalid SQLSTATE");
#[doc = r" `22S04`, invalid polygon ring direction. MySQL only."]
pub const INVALID_CAST_POLYGON_RING_DIRECTION: crate::SqlState =
    crate::SqlState::new(*b"22S04").expect("invalid SQLSTATE");
#[doc = r" `22S05`, aggregate over different SRIDs. MySQL only."]
pub const GIS_DIFFERENT_SRIDS_AGGREGATION: crate::SqlState =
    crate::SqlState::new(*b"22S05").expect("invalid SQLSTATE");
#[doc = r" `23000`, integrity constraint violation."]
pub const INTEGRITY_CONSTRAINT_VIOLATION: crate::SqlState =
    crate::SqlState::new(*b"23000").expect("invalid SQLSTATE");
#[doc = r" `24000`, invalid cursor state."]
pub const INVALID_CURSOR_STATE: crate::SqlState =
    crate::SqlState::new(*b"24000").expect("invalid SQLSTATE");
#[doc = r" `25000`, invalid transaction state."]
pub const INVALID_TRANSACTION_STATE: crate::SqlState =
    crate::SqlState::new(*b"25000").expect("invalid SQLSTATE");
#[doc = r" `25001`, active SQL transaction."]
pub const ACTIVE_SQL_TRANSACTION: crate::SqlState =
    crate::SqlState::new(*b"25001").expect("invalid SQLSTATE");
#[doc = r" `25006`, read-only SQL transaction."]
pub const READ_ONLY_SQL_TRANSACTION: crate::SqlState =
    crate::SqlState::new(*b"25006").expect("invalid SQLSTATE");
#[doc = r" `28000`, invalid authorization specification."]
pub const INVALID_AUTHORIZATION_SPECIFICATION: crate::SqlState =
    crate::SqlState::new(*b"28000").expect("invalid SQLSTATE");
#[doc = r" `2F003`, prohibited SQL statement attempted."]
pub const PROHIBITED_SQL_STATEMENT_ATTEMPTED: crate::SqlState =
    crate::SqlState::new(*b"2F003").expect("invalid SQLSTATE");
#[doc = r" `2F005`, function executed no return statement."]
pub const FUNCTION_EXECUTED_NO_RETURN_STATEMENT: crate::SqlState =
    crate::SqlState::new(*b"2F005").expect("invalid SQLSTATE");
#[doc = r" `35000`, invalid condition number."]
pub const INVALID_CONDITION_NUMBER: crate::SqlState =
    crate::SqlState::new(*b"35000").expect("invalid SQLSTATE");
#[doc = r" `3D000`, invalid catalog name."]
pub const INVALID_CATALOG_NAME: crate::SqlState =
    crate::SqlState::new(*b"3D000").expect("invalid SQLSTATE");
#[doc = r" `40000`, transaction rollback. MySQL only."]
pub const TRANSACTION_ROLLBACK: crate::SqlState =
    crate::SqlState::new(*b"40000").expect("invalid SQLSTATE");
#[doc = r" `40001`, serialization failure."]
pub const SERIALIZATION_FAILURE: crate::SqlState =
    crate::SqlState::new(*b"40001").expect("invalid SQLSTATE");
#[doc = r" `42000`, syntax error or access rule violation."]
pub const SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION: crate::SqlState =
    crate::SqlState::new(*b"42000").expect("invalid SQLSTATE");
#[doc = r" `42S01`, base table or view already exists."]
pub const BASE_TABLE_OR_VIEW_ALREADY_EXISTS: crate::SqlState =
    crate::SqlState::new(*b"42S01").expect("invalid SQLSTATE");
#[doc = r" `42S02`, base table or view not found."]
pub const BASE_TABLE_OR_VIEW_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"42S02").expect("invalid SQLSTATE");
#[doc = r" `42S12`, index not found."]
pub const INDEX_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"42S12").expect("invalid SQLSTATE");
#[doc = r" `42S21`, column already exists."]
pub const COLUMN_ALREADY_EXISTS: crate::SqlState =
    crate::SqlState::new(*b"42S21").expect("invalid SQLSTATE");
#[doc = r" `42S22`, column not found."]
pub const COLUMN_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"42S22").expect("invalid SQLSTATE");
#[doc = r" `42Y07`, unknown database. MySQL only."]
pub const NO_SUCH_DB: crate::SqlState =
    crate::SqlState::new(*b"42Y07").expect("invalid SQLSTATE");
#[doc = r" `44000`, with check option violation. MariaDB only."]
pub const WITH_CHECK_OPTION_VIOLATION: crate::SqlState =
    crate::SqlState::new(*b"44000").expect("invalid SQLSTATE");
#[doc = r" `70100`, operation aborted."]
pub const OPERATION_ABORTED: crate::SqlState =
    crate::SqlState::new(*b"70100").expect("invalid SQLSTATE");
#[doc = r" `HY000`, general error."]
pub const GENERAL_ERROR: crate::SqlState =
    crate::SqlState::new(*b"HY000").expect("invalid SQLSTATE");
#[doc = r" `HY001`, memory allocation error."]
pub const MEMORY_ALLOCATION_ERROR: crate::SqlState =
    crate::SqlState::new(*b"HY001").expect("invalid SQLSTATE");
#[doc = r" `OP000`, invalid role specification. MariaDB only."]
pub const INVALID_ROLE: crate::SqlState =
    crate::SqlState::new(*b"OP000").expect("invalid SQLSTATE");
#[doc = r" `SR000`, SRID 0 cannot be modified. MySQL only."]
pub const CANT_MODIFY_SRID_0: crate::SqlState =
    crate::SqlState::new(*b"SR000").expect("invalid SQLSTATE");
#[doc = r" `SR001`, SRS not found. MySQL only."]
pub const SRS_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"SR001").expect("invalid SQLSTATE");
#[doc = r" `SR002`, invalid SRS definition. MySQL only."]
pub const INVALID_SRS_DEFINITION: crate::SqlState =
    crate::SqlState::new(*b"SR002").expect("invalid SQLSTATE");
#[doc = r" `SR003`, missing SRS projection parameter. MySQL only."]
pub const SRS_PROJ_PARAMETER_MISSING: crate::SqlState =
    crate::SqlState::new(*b"SR003").expect("invalid SQLSTATE");
#[doc = r" `SR004`, SRS ID already exists. MySQL only."]
pub const SRS_ID_ALREADY_EXISTS: crate::SqlState =
    crate::SqlState::new(*b"SR004").expect("invalid SQLSTATE");
#[doc = r" `SR005`, SRS used by a column. MySQL only."]
pub const CANT_MODIFY_SRS_USED_BY_COLUMN: crate::SqlState =
    crate::SqlState::new(*b"SR005").expect("invalid SQLSTATE");
#[doc = r" `SR006`, invalid SRS attribute. MySQL only."]
pub const INVALID_SRS_ATTRIBUTE: crate::SqlState =
    crate::SqlState::new(*b"SR006").expect("invalid SQLSTATE");
#[doc = r" `SU001`, unknown unit. MySQL only."]
pub const UNIT_NOT_FOUND: crate::SqlState =
    crate::SqlState::new(*b"SU001").expect("invalid SQLSTATE");
#[doc = r" `XA100`, XA branch rolled back."]
pub const XA_RBROLLBACK: crate::SqlState =
    crate::SqlState::new(*b"XA100").expect("invalid SQLSTATE");
#[doc = r" `XA102`, XA branch rolled back after a deadlock."]
pub const XA_RBDEADLOCK: crate::SqlState =
    crate::SqlState::new(*b"XA102").expect("invalid SQLSTATE");
#[doc = r" `XA106`, XA branch rolled back after a timeout."]
pub const XA_RBTIMEOUT: crate::SqlState =
    crate::SqlState::new(*b"XA106").expect("invalid SQLSTATE");
#[doc = r" `XAE03`, XA resource manager error."]
pub const XAER_RMERR: crate::SqlState =
    crate::SqlState::new(*b"XAE03").expect("invalid SQLSTATE");
#[doc = r" `XAE04`, unknown XID."]
pub const XAER_NOTA: crate::SqlState =
    crate::SqlState::new(*b"XAE04").expect("invalid SQLSTATE");
#[doc = r" `XAE05`, invalid XA arguments."]
pub const XAER_INVAL: crate::SqlState =
    crate::SqlState::new(*b"XAE05").expect("invalid SQLSTATE");
#[doc = r" `XAE07`, XA command not allowed in this state."]
pub const XAER_RMFAIL: crate::SqlState =
    crate::SqlState::new(*b"XAE07").expect("invalid SQLSTATE");
#[doc = r" `XAE08`, XID already exists."]
pub const XAER_DUPID: crate::SqlState =
    crate::SqlState::new(*b"XAE08").expect("invalid SQLSTATE");
#[doc = r" `XAE09`, work outside the XA transaction."]
pub const XAER_OUTSIDE: crate::SqlState =
    crate::SqlState::new(*b"XAE09").expect("invalid SQLSTATE");codes! {
13    /// `01000`, warning.
14    WARNING = b"01000";
15    /// `01S00`, SRS ID already exists warning. MySQL only.
16    WARN_SRS_ID_ALREADY_EXISTS = b"01S00";
17    /// `01S01`, reserved SRID range warning. MySQL only.
18    WARN_RESERVED_SRID_RANGE = b"01S01";
19    /// `02000`, no data.
20    NO_DATA = b"02000";
21    /// `08004`, SQL server rejected establishment of SQL connection.
22    SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = b"08004";
23    /// `08S01`, communication link failure.
24    COMMUNICATION_LINK_FAILURE = b"08S01";
25    /// `0A000`, feature not supported.
26    FEATURE_NOT_SUPPORTED = b"0A000";
27    /// `0K000`, resignal when handler not active.
28    RESIGNAL_WHEN_HANDLER_NOT_ACTIVE = b"0K000";
29    /// `0L000`, invalid grantor. MariaDB only.
30    INVALID_GRANTOR = b"0L000";
31    /// `0Z002`, stacked diagnostics accessed without active handler.
32    STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = b"0Z002";
33    /// `20000`, case not found for case statement.
34    CASE_NOT_FOUND = b"20000";
35    /// `21000`, cardinality violation.
36    CARDINALITY_VIOLATION = b"21000";
37    /// `21S01`, insert value list does not match column list.
38    INSERT_VALUE_LIST_DOES_NOT_MATCH_COLUMN_LIST = b"21S01";
39    /// `22001`, string data, right truncation.
40    STRING_DATA_RIGHT_TRUNCATION = b"22001";
41    /// `22003`, numeric value out of range.
42    NUMERIC_VALUE_OUT_OF_RANGE = b"22003";
43    /// `22004`, null value not allowed.
44    NULL_VALUE_NOT_ALLOWED = b"22004";
45    /// `22007`, invalid datetime format.
46    INVALID_DATETIME_FORMAT = b"22007";
47    /// `22008`, datetime field overflow.
48    DATETIME_FIELD_OVERFLOW = b"22008";
49    /// `22012`, division by zero.
50    DIVISION_BY_ZERO = b"22012";
51    /// `22018`, invalid character value for cast. MySQL only.
52    INVALID_CHARACTER_VALUE_FOR_CAST = b"22018";
53    /// `2201E`, invalid argument for natural logarithm.
54    INVALID_ARGUMENT_FOR_LOGARITHM = b"2201E";
55    /// `22023`, invalid parameter value.
56    INVALID_PARAMETER_VALUE = b"22023";
57    /// `2202H`, invalid tablesample argument. MySQL only.
58    INVALID_TABLESAMPLE_ARGUMENT = b"2202H";
59    /// `22032`, invalid JSON text. MySQL only.
60    INVALID_JSON_TEXT = b"22032";
61    /// `22034`, more than one SQL/JSON item. MySQL only.
62    MORE_THAN_ONE_SQL_JSON_ITEM = b"22034";
63    /// `22035`, no SQL/JSON item. MySQL only.
64    NO_SQL_JSON_ITEM = b"22035";
65    /// `2203F`, SQL/JSON scalar required. MySQL only.
66    SQL_JSON_SCALAR_REQUIRED = b"2203F";
67    /// `22S00`, unsupported SRS operation. MySQL only.
68    SRS_NOT_SUPPORTED = b"22S00";
69    /// `22S01`, unexpected geometry type. MySQL only.
70    UNEXPECTED_GEOMETRY_TYPE = b"22S01";
71    /// `22S02`, longitude out of range. MySQL only.
72    LONGITUDE_OUT_OF_RANGE = b"22S02";
73    /// `22S03`, latitude out of range. MySQL only.
74    LATITUDE_OUT_OF_RANGE = b"22S03";
75    /// `22S04`, invalid polygon ring direction. MySQL only.
76    INVALID_CAST_POLYGON_RING_DIRECTION = b"22S04";
77    /// `22S05`, aggregate over different SRIDs. MySQL only.
78    GIS_DIFFERENT_SRIDS_AGGREGATION = b"22S05";
79    /// `23000`, integrity constraint violation.
80    INTEGRITY_CONSTRAINT_VIOLATION = b"23000";
81    /// `24000`, invalid cursor state.
82    INVALID_CURSOR_STATE = b"24000";
83    /// `25000`, invalid transaction state.
84    INVALID_TRANSACTION_STATE = b"25000";
85    /// `25001`, active SQL transaction.
86    ACTIVE_SQL_TRANSACTION = b"25001";
87    /// `25006`, read-only SQL transaction.
88    READ_ONLY_SQL_TRANSACTION = b"25006";
89    /// `28000`, invalid authorization specification.
90    INVALID_AUTHORIZATION_SPECIFICATION = b"28000";
91    /// `2F003`, prohibited SQL statement attempted.
92    PROHIBITED_SQL_STATEMENT_ATTEMPTED = b"2F003";
93    /// `2F005`, function executed no return statement.
94    FUNCTION_EXECUTED_NO_RETURN_STATEMENT = b"2F005";
95    /// `35000`, invalid condition number.
96    INVALID_CONDITION_NUMBER = b"35000";
97    /// `3D000`, invalid catalog name.
98    INVALID_CATALOG_NAME = b"3D000";
99    /// `40000`, transaction rollback. MySQL only.
100    TRANSACTION_ROLLBACK = b"40000";
101    /// `40001`, serialization failure.
102    SERIALIZATION_FAILURE = b"40001";
103    /// `42000`, syntax error or access rule violation.
104    SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = b"42000";
105    /// `42S01`, base table or view already exists.
106    BASE_TABLE_OR_VIEW_ALREADY_EXISTS = b"42S01";
107    /// `42S02`, base table or view not found.
108    BASE_TABLE_OR_VIEW_NOT_FOUND = b"42S02";
109    /// `42S12`, index not found.
110    INDEX_NOT_FOUND = b"42S12";
111    /// `42S21`, column already exists.
112    COLUMN_ALREADY_EXISTS = b"42S21";
113    /// `42S22`, column not found.
114    COLUMN_NOT_FOUND = b"42S22";
115    /// `42Y07`, unknown database. MySQL only.
116    NO_SUCH_DB = b"42Y07";
117    /// `44000`, with check option violation. MariaDB only.
118    WITH_CHECK_OPTION_VIOLATION = b"44000";
119    /// `70100`, operation aborted.
120    OPERATION_ABORTED = b"70100";
121    /// `HY000`, general error.
122    GENERAL_ERROR = b"HY000";
123    /// `HY001`, memory allocation error.
124    MEMORY_ALLOCATION_ERROR = b"HY001";
125    /// `OP000`, invalid role specification. MariaDB only.
126    INVALID_ROLE = b"OP000";
127    /// `SR000`, SRID 0 cannot be modified. MySQL only.
128    CANT_MODIFY_SRID_0 = b"SR000";
129    /// `SR001`, SRS not found. MySQL only.
130    SRS_NOT_FOUND = b"SR001";
131    /// `SR002`, invalid SRS definition. MySQL only.
132    INVALID_SRS_DEFINITION = b"SR002";
133    /// `SR003`, missing SRS projection parameter. MySQL only.
134    SRS_PROJ_PARAMETER_MISSING = b"SR003";
135    /// `SR004`, SRS ID already exists. MySQL only.
136    SRS_ID_ALREADY_EXISTS = b"SR004";
137    /// `SR005`, SRS used by a column. MySQL only.
138    CANT_MODIFY_SRS_USED_BY_COLUMN = b"SR005";
139    /// `SR006`, invalid SRS attribute. MySQL only.
140    INVALID_SRS_ATTRIBUTE = b"SR006";
141    /// `SU001`, unknown unit. MySQL only.
142    UNIT_NOT_FOUND = b"SU001";
143    /// `XA100`, XA branch rolled back.
144    XA_RBROLLBACK = b"XA100";
145    /// `XA102`, XA branch rolled back after a deadlock.
146    XA_RBDEADLOCK = b"XA102";
147    /// `XA106`, XA branch rolled back after a timeout.
148    XA_RBTIMEOUT = b"XA106";
149    /// `XAE03`, XA resource manager error.
150    XAER_RMERR = b"XAE03";
151    /// `XAE04`, unknown XID.
152    XAER_NOTA = b"XAE04";
153    /// `XAE05`, invalid XA arguments.
154    XAER_INVAL = b"XAE05";
155    /// `XAE07`, XA command not allowed in this state.
156    XAER_RMFAIL = b"XAE07";
157    /// `XAE08`, XID already exists.
158    XAER_DUPID = b"XAE08";
159    /// `XAE09`, work outside the XA transaction.
160    XAER_OUTSIDE = b"XAE09";
161}