Helper class to switch to a new thread and then go back to the previous one, when the object is destroyed using RAII.
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...
|
| |
Helper class to switch to a new thread and then go back to the previous one, when the object is destroyed using RAII.
This class is used to temporarily switch to another session (THD structure). It will set up thread specific "globals" correctly so that the POSIX thread looks exactly like the session attached to. However, PSI_thread info is not touched as it is required to show the actual physical view in PFS instrumentation i.e., it should depict as the real thread doing the work instead of thread it switched to.
On destruction, the original session (which is supplied to the constructor) will be re-attached automatically. For example, with this code, the value of current_thd will be the same before and after execution of the code.
{
for (
int i = 0 ; i <
count ; ++i)
{
}
}
Helper class to switch to a new thread and then go back to the previous one, when the object is destr...
Definition: thd_backup_and_restore.h:64
thread_local THD * current_thd
Definition: current_thd.cc:26
static int count
Definition: myisam_ftdump.cc:45
- Warning
- The class is not designed to be inherited from. 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.