MySQL 9.6.0
Source Code Documentation
s_mysql_bulk_data_load Struct Reference

Column metadata information. More...

#include <bulk_data_service.h>

Public Attributes

void *(* begin )(THD *thd, const TABLE *table, size_t keynr, size_t data_size, size_t memory, size_t num_threads)
 Begin Loading bulk data to SE. More...
 
bool(* load )(THD *thd, void *ctx, const TABLE *table, const Rows_mysql &sql_rows, size_t thread, Bulk_load::Stat_callbacks &wait_cbks)
 Load a set of rows to SE table by one thread. More...
 
bool(* open_blob )(THD *thd, void *load_ctx, const TABLE *table, Blob_context &blob_ctx, unsigned char *blobref, size_t thread)
 Create a blob context object to insert a blob. More...
 
bool(* write_blob )(THD *thd, void *load_ctx, const TABLE *table, Blob_context blob_ctx, unsigned char *blobref, size_t thread, const unsigned char *data, size_t data_len)
 Write data into a blob. More...
 
bool(* close_blob )(THD *thd, void *load_ctx, const TABLE *table, Blob_context blob_ctx, unsigned char *blobref, size_t thread)
 Close the blob. More...
 
bool(* end )(THD *thd, void *ctx, const TABLE *table, bool error)
 End Loading bulk data to SE. More...
 
bool(* is_table_supported )(THD *thd, const TABLE *table)
 Check if a table is supported by the bulk load implementation. More...
 
size_t(* get_se_memory_size )(THD *thd, const TABLE *table)
 Get available buffer pool memory for bulk load operations. More...
 
bool(* copy_existing_data )(void *ctx, const TABLE *table, size_t thread, Bulk_load::Stat_callbacks &wait_cbks)
 Copies data from existing table into the duplicated table during incremental load. More...
 
bool(* set_source_table_data )(void *ctx, const TABLE *table, const std::vector< Bulk_load::Source_table_data > &source_table_data)
 Sets the source table data (table name and key range boundaries) for all loaders. More...
 

Detailed Description

Column metadata information.

Member Data Documentation

◆ begin

void *(* s_mysql_bulk_data_load::begin) (THD *thd, const TABLE *table, size_t keynr, size_t data_size, size_t memory, size_t num_threads)

Begin Loading bulk data to SE.

Parameters
[in,out]thdsession THD
[in]tableMySQL TABLE
[in]keynrkey number, identifying the index being loaded.
[in]data_sizetotal data size to load
[in]memorySE memory to be used
[in]num_threadsNumber of concurrent threads
Returns
SE bulk load context or nullptr in case of an error.

◆ close_blob

bool(* s_mysql_bulk_data_load::close_blob) (THD *thd, void *load_ctx, const TABLE *table, Blob_context blob_ctx, unsigned char *blobref, size_t thread)

Close the blob.

Parameters
[in,out]thdsession THD
[in,out]load_ctxSE load context returned by begin()
[in]tableMySQL TABLE
[in]blob_ctxa blob context object to insert a blob.
[out]blobrefbuffer to hold blob reference
[in]threadcurrent thread number
Returns
true if successful.

◆ copy_existing_data

bool(* s_mysql_bulk_data_load::copy_existing_data) (void *ctx, const TABLE *table, size_t thread, Bulk_load::Stat_callbacks &wait_cbks)

Copies data from existing table into the duplicated table during incremental load.

This is called after the bulk load component detects we reached the end of the CSV input for the respective sub-loader and it signals that the loader should now iterate through the remainded or the existing data in the original table and migrate it.

Parameters
[in,out]ctxSE load context
[in]tableMySQL TABLE
[in]threadloader thread index
[in,out]wait_cbkswait stat callbacks
Returns
true if successful, false otherwise.

◆ end

bool(* s_mysql_bulk_data_load::end) (THD *thd, void *ctx, const TABLE *table, bool error)

End Loading bulk data to SE.

Called at the end of bulk load execution, even if begin or load calls failed.

Parameters
[in,out]thdsession THD
[in,out]ctxSE load context
[in]tableMySQL TABLE
[in]errortrue, if exiting after error
Returns
true if successful.

◆ get_se_memory_size

size_t(* s_mysql_bulk_data_load::get_se_memory_size) (THD *thd, const TABLE *table)

Get available buffer pool memory for bulk load operations.

Parameters
[in,out]thdsession THD
[in]tableMySQL TABLE
Returns
buffer pool memory available for bulk load.

◆ is_table_supported

bool(* s_mysql_bulk_data_load::is_table_supported) (THD *thd, const TABLE *table)

Check if a table is supported by the bulk load implementation.

Parameters
[in,out]thdsession THD
[in]tableMySQL TABLE
Returns
true if table is supported.

◆ load

bool(* s_mysql_bulk_data_load::load) (THD *thd, void *ctx, const TABLE *table, const Rows_mysql &sql_rows, size_t thread, Bulk_load::Stat_callbacks &wait_cbks)

Load a set of rows to SE table by one thread.

Parameters
[in,out]thdsession THD
[in,out]ctxSE load context returned by begin()
[in]tableMySQL TABLE
[in]sql_rowsrow data to load
[in]threadcurrent thread number
[in]wait_cbkswait stat callbacks
Returns
true if successful.

◆ open_blob

bool(* s_mysql_bulk_data_load::open_blob) (THD *thd, void *load_ctx, const TABLE *table, Blob_context &blob_ctx, unsigned char *blobref, size_t thread)

Create a blob context object to insert a blob.

Parameters
[in,out]thdsession THD
[in,out]load_ctxSE load context returned by begin()
[in]tableMySQL TABLE
[out]blob_ctxa blob context object to insert a blob.
[out]blobrefbuffer to hold blob reference
[in]threadcurrent thread number
Returns
true if successful.

◆ set_source_table_data

bool(* s_mysql_bulk_data_load::set_source_table_data) (void *ctx, const TABLE *table, const std::vector< Bulk_load::Source_table_data > &source_table_data)

Sets the source table data (table name and key range boundaries) for all loaders.

Parameters
[in,out]ctxSE load context
[in]tableMySQL TABLE
[in]source_table_datavector containing the source table data
Returns
true if successful, false otherwise.

◆ write_blob

bool(* s_mysql_bulk_data_load::write_blob) (THD *thd, void *load_ctx, const TABLE *table, Blob_context blob_ctx, unsigned char *blobref, size_t thread, const unsigned char *data, size_t data_len)

Write data into a blob.

Parameters
[in,out]thdsession THD
[in,out]load_ctxSE load context returned by begin()
[in]tableMySQL TABLE
[in]blob_ctxa blob context object to insert a blob.
[out]blobrefbuffer to hold blob reference
[in]threadcurrent thread number
[in]datablob data to be written
[in]data_lenlength of blob data to be written (in bytes);
Returns
true if successful.

The documentation for this struct was generated from the following file: