Caches for non-transactional and transactional data before writing it to the binary log.
More...
|
| binlog_cache_data (class binlog_cache_mngr &cache_mngr, bool trx_cache_arg, ulong *ptr_binlog_cache_use_arg, ulong *ptr_binlog_cache_disk_use_arg) |
|
bool | open (my_off_t cache_size, my_off_t max_cache_size) |
|
Binlog_cache_storage * | get_cache () |
|
int | finalize (THD *thd, Log_event *end_event) |
| This function finalizes the cache preparing for commit or rollback. More...
|
|
int | finalize (THD *thd, Log_event *end_event, XID_STATE *xs) |
| The method writes XA END query to XA-prepared transaction's cache and calls the "basic" finalize(). More...
|
|
int | flush (THD *thd, my_off_t *bytes, bool *wrote_xid, bool parallelization_barrier) |
| Flush caches to the binary log. More...
|
|
int | write_event (Log_event *event) |
|
void | set_event_counter (size_t event_counter) |
|
size_t | get_event_counter () const |
|
size_t | get_compressed_size () const |
|
size_t | get_decompressed_size () const |
|
mysql::binlog::event::compression::type | get_compression_type () const |
|
void | set_compressed_size (size_t s) |
|
void | set_decompressed_size (size_t s) |
|
void | set_compression_type (mysql::binlog::event::compression::type t) |
|
virtual | ~binlog_cache_data () |
|
bool | is_binlog_empty () const |
|
bool | is_finalized () const |
|
Rows_log_event * | pending () const |
|
void | set_pending (Rows_log_event *const pending) |
|
void | set_incident (std::string_view incident_message="Non-transactional changes were not written to the binlog.") |
|
bool | has_incident (void) const |
|
bool | has_xid () const |
|
bool | is_trx_cache () const |
|
my_off_t | get_byte_position () const |
|
void | cache_state_checkpoint (my_off_t pos_to_checkpoint) |
|
void | cache_state_rollback (my_off_t pos_to_rollback) |
|
virtual void | reset () |
| Reset the cache to unused state when the transaction is finished. More...
|
|
bool | may_have_sbr_stmts () |
| Returns information about the cache content with respect to the binlog_format of the events. More...
|
|
bool | has_empty_transaction () |
| Check if the binlog cache contains an empty transaction, which has two binlog events "BEGIN" and "COMMIT". More...
|
|
bool | is_empty_or_has_empty_transaction () |
| Check if the binlog cache is empty or contains an empty transaction, which has two binlog events "BEGIN" and "COMMIT". More...
|
|
Caches for non-transactional and transactional data before writing it to the binary log.
bool binlog_cache_data::may_have_sbr_stmts |
( |
| ) |
|
|
inline |
Returns information about the cache content with respect to the binlog_format of the events.
This will be used to set a flag on GTID_LOG_EVENT stating that the transaction may have SBR statements or not, but the binlog dump will show this flag as "rbr_only" when it is not set. That's why an empty transaction should return true below, or else an empty transaction would be assumed as "rbr_only" even not having RBR events.
When dumping a binary log content using mysqlbinlog client program, for any transaction assumed as "rbr_only" it will be printed a statement changing the transaction isolation level to READ COMMITTED. It doesn't make sense to have an empty transaction "requiring" this isolation level change.
- Returns
- true The cache have SBR events or is empty.
-
false The cache contains a transaction with no SBR events.