MySQL 8.4.2
Source Code Documentation
|
This event is created to contain the file data. More...
#include <load_data_events.h>
Public Member Functions | |
Append_block_event (const char *buf, const Format_description_event *fde) | |
Appends the buffered data, received as a parameter, to the file being loaded via LOAD_DATA_FILE. More... | |
~Append_block_event () override=default | |
Public Member Functions inherited from mysql::binlog::event::Binary_log_event | |
virtual | ~Binary_log_event ()=0 |
Binary_log_event (const Binary_log_event &)=default | |
Binary_log_event (Binary_log_event &&)=default | |
Binary_log_event & | operator= (const Binary_log_event &)=default |
Binary_log_event & | operator= (Binary_log_event &&)=default |
enum Log_event_type | get_event_type () const |
Helper method. More... | |
const Log_event_header * | header () const |
Return a const pointer to the header of the log event. More... | |
Log_event_header * | header () |
Return a non-const pointer to the header of the log event. More... | |
const Log_event_footer * | footer () const |
Return a const pointer to the footer of the log event. More... | |
Log_event_footer * | footer () |
Return a non-const pointer to the footer of the log event. More... | |
Event_reader & | reader () |
Returns a reference to the event Event_reader object. More... | |
Public Attributes | |
unsigned char * | block |
unsigned int | block_len |
uint32_t | file_id |
const char * | db |
'db' is filled when the event is created in mysql_load() (the event needs to have a 'db' member to be well filtered by binlog-*-db rules). More... | |
Protected Member Functions | |
Append_block_event (const char *db_arg, unsigned char *block_arg, unsigned int block_len_arg, uint32_t file_id_arg) | |
This constructor is used by the MySQL server. More... | |
Append_block_event (Log_event_type type_arg=APPEND_BLOCK_EVENT) | |
Protected Member Functions inherited from mysql::binlog::event::Binary_log_event | |
Binary_log_event (Log_event_type type_code) | |
This constructor is used to initialize the type_code of header object m_header. More... | |
Binary_log_event (const char **buf, const Format_description_event *fde) | |
This constructor will create a new object of Log_event_header and initialize the variable m_header, which in turn will be used to initialize Log_event's member common_header. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from mysql::binlog::event::Binary_log_event | |
static const int | LOG_EVENT_TYPES = (ENUM_END_EVENT - 1) |
This event is created to contain the file data.
One LOAD_DATA_INFILE can have 0 or more instances of this event written to the binary log depending on the size of the file. If the file to be loaded is greater than the threshold value, which is roughly 2^17 bytes, the file is divided into blocks of size equal to the threshold, and each block is sent across as a separate event.
The post header contains the following:
Name | Format | Description |
---|---|---|
file_id | 32 bit integer | The ID of the file to append the block to |
The body of the event contains the raw data to load. The raw data size is the event size minus the size of all the fixed event parts.
|
inlineprotected |
This constructor is used by the MySQL server.
|
inlineprotected |
mysql::binlog::event::Append_block_event::Append_block_event | ( | const char * | buf, |
const Format_description_event * | fde | ||
) |
Appends the buffered data, received as a parameter, to the file being loaded via LOAD_DATA_FILE.
The buffer layout for fixed data part is as follows:
+---------+ | file_id | +---------+
The buffer layout for variable data part is as follows:
+-------------------+ | block | block_len | +-------------------+
buf | Contains the serialized event. |
fde | An FDE event (see Rotate_event constructor for more info). |
|
overridedefault |
unsigned char* mysql::binlog::event::Append_block_event::block |
unsigned int mysql::binlog::event::Append_block_event::block_len |
const char* mysql::binlog::event::Append_block_event::db |
'db' is filled when the event is created in mysql_load() (the event needs to have a 'db' member to be well filtered by binlog-*-db rules).
'db' is not written to the binlog (it's not used by Append_block_log_event::write()), so it can't be read in the Append_block_event(const char* buf, int event_len) constructor. In other words, 'db' is used only for filtering by binlog-*-db rules. Create_file_event is different: it's 'db' (which is inherited from Load_event) is written to the binlog and can be re-read.
uint32_t mysql::binlog::event::Append_block_event::file_id |