MySQL 8.3.0
Source Code Documentation
Sql_cmd_load_table Class Referencefinal

#include <sql_load.h>

Inheritance diagram for Sql_cmd_load_table:
[legend]

Public Member Functions

 Sql_cmd_load_table (enum_filetype filetype, bool is_local_file, enum_source_type source_type, const LEX_STRING &filename, ulong file_count, bool in_key_order, On_duplicate on_duplicate, Table_ident *table, List< String > *opt_partitions, const CHARSET_INFO *opt_charset, String *opt_xml_rows_identified_by, const Field_separators &field_separators, const Line_separators &line_separators, ulong skip_lines, mem_root_deque< Item * > *opt_fields_or_vars, mem_root_deque< Item * > *opt_set_fields, mem_root_deque< Item * > *opt_set_exprs, List< String > *opt_set_expr_strings, ulong concurrency, ulonglong memory_size, bool is_bulk_operation)
 
enum_sql_command sql_command_code () const override
 Return the command code for this statement. More...
 
bool execute (THD *thd) override
 Execute this SQL statement. More...
 
bool is_bulk_load () const override
 
- Public Member Functions inherited from Sql_cmd
bool needs_explicit_preparation () const
 
bool is_regular () const
 
bool is_prepared () const
 
virtual bool prepare (THD *)
 Prepare this SQL statement. More...
 
virtual void cleanup (THD *)
 Command-specific reinitialization before execution of prepared statement. More...
 
void set_owner (Prepared_statement *stmt)
 Set the owning prepared statement. More...
 
Prepared_statementowner () const
 Get the owning prepared statement. More...
 
void set_as_part_of_sp ()
 Mark statement as part of procedure. More...
 
bool is_part_of_sp () const
 
virtual enum enum_sql_cmd_type sql_cmd_type () const
 
virtual bool is_single_table_plan () const
 
virtual bool accept (THD *, Select_lex_visitor *)
 
virtual const MYSQL_LEX_CSTRINGeligible_secondary_storage_engine (THD *) const
 Is this statement of a type and on a form that makes it eligible for execution in a secondary storage engine? More...
 
void disable_secondary_storage_engine ()
 Disable use of secondary storage engines in this statement. More...
 
void enable_secondary_storage_engine ()
 
bool secondary_storage_engine_disabled () const
 Has use of secondary storage engines been disabled for this statement? More...
 
void use_secondary_storage_engine (const handlerton *hton)
 Mark the current statement as using a secondary storage engine. More...
 
bool using_secondary_storage_engine () const
 Is this statement using a secondary storage engine? More...
 
const handlertonsecondary_engine () const
 Get the handlerton of the secondary engine that is used for executing this statement, or nullptr if a secondary engine is not used. More...
 
void set_optional_transform_prepared (bool value)
 
bool is_optional_transform_prepared ()
 

Public Attributes

sql_exchange m_exchange
 
const bool m_is_local_file
 
const On_duplicate m_on_duplicate
 
Table_ident *const m_table
 
List< String > *const m_opt_partitions
 
mem_root_deque< Item * > m_opt_fields_or_vars
 
mem_root_deque< Item * > m_opt_set_fields
 
mem_root_deque< Item * > m_opt_set_exprs
 
List< String > *const m_opt_set_expr_strings
 A list of strings is maintained to store the SET clause command user strings which are specified in load data operation. More...
 

Private Member Functions

bool execute_inner (THD *thd, enum enum_duplicates handle_duplicates)
 Execute LOAD DATA query. More...
 
bool execute_bulk (THD *thd)
 Execute BULK LOAD DATA. More...
 
bool truncate_table_for_bulk_load (THD *thd, Table_ref *const table_ref, dd::Table *table_def)
 Truncate to create a new table for BULK LOAD. More...
 
bool check_bulk_load_parameters (THD *thd)
 Check bulk load parameters for limits. More...
 
bool validate_table_for_bulk_load (THD *thd, Table_ref *const table_ref, dd::Table *table_def, handlerton **hton)
 Validate table for bulk load operation. More...
 
bool bulk_driver_service (THD *thd, const TABLE *table, size_t &affected_rows)
 
bool read_fixed_length (THD *thd, COPY_INFO &info, Table_ref *table_list, READ_INFO &read_info, ulong skip_lines)
 Read of rows of fixed size + optional garbage + optional newline. More...
 
bool read_sep_field (THD *thd, COPY_INFO &info, Table_ref *table_list, READ_INFO &read_info, const String &enclosed, ulong skip_lines)
 Read rows in delimiter-separated formats. More...
 
bool read_xml_field (THD *thd, COPY_INFO &info, Table_ref *table_list, READ_INFO &read_info, ulong skip_lines)
 Read rows in xml format. More...
 
bool write_execute_load_query_log_event (THD *thd, const char *db, const char *table_name, bool is_concurrent, enum enum_duplicates duplicates, bool transactional_table, int errocode)
 

Private Attributes

enum_source_type m_bulk_source
 Source for bulk data. More...
 
ulong m_file_count
 Number of input files. More...
 
bool m_ordered_data
 true if input data is in order of Primary Key. More...
 
ulong m_concurrency
 Number of concurrent loaders to use. More...
 
ulonglong m_memory_size
 Maximum memory size to be used in bytes. More...
 
bool m_is_bulk_operation
 true if BULK LOAD. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Sql_cmd
 Sql_cmd ()
 
virtual ~Sql_cmd ()
 
void set_prepared ()
 Set this statement as prepared. More...
 

Constructor & Destructor Documentation

◆ Sql_cmd_load_table()

Sql_cmd_load_table::Sql_cmd_load_table ( enum_filetype  filetype,
bool  is_local_file,
enum_source_type  source_type,
const LEX_STRING filename,
ulong  file_count,
bool  in_key_order,
On_duplicate  on_duplicate,
Table_ident table,
List< String > *  opt_partitions,
const CHARSET_INFO opt_charset,
String opt_xml_rows_identified_by,
const Field_separators field_separators,
const Line_separators line_separators,
ulong  skip_lines,
mem_root_deque< Item * > *  opt_fields_or_vars,
mem_root_deque< Item * > *  opt_set_fields,
mem_root_deque< Item * > *  opt_set_exprs,
List< String > *  opt_set_expr_strings,
ulong  concurrency,
ulonglong  memory_size,
bool  is_bulk_operation 
)
inline

Member Function Documentation

◆ bulk_driver_service()

bool Sql_cmd_load_table::bulk_driver_service ( THD thd,
const TABLE table,
size_t &  affected_rows 
)
private

◆ check_bulk_load_parameters()

bool Sql_cmd_load_table::check_bulk_load_parameters ( THD thd)
private

Check bulk load parameters for limits.

Parameters
thdCurrent thread
Returns
true if error

◆ execute()

bool Sql_cmd_load_table::execute ( THD thd)
overridevirtual

Execute this SQL statement.

Parameters
thdthe current thread.
Returns
false if success, true if error

Implements Sql_cmd.

◆ execute_bulk()

bool Sql_cmd_load_table::execute_bulk ( THD thd)
private

Execute BULK LOAD DATA.

Parameters
thdCurrent thread.
Returns
true if error

◆ execute_inner()

bool Sql_cmd_load_table::execute_inner ( THD thd,
enum enum_duplicates  handle_duplicates 
)
private

Execute LOAD DATA query.

Parameters
thdCurrent thread.
handle_duplicatesIndicates whenever we should emit error or replace row if we will meet duplicates.
Returns
true if error

◆ is_bulk_load()

bool Sql_cmd_load_table::is_bulk_load ( ) const
inlineoverridevirtual
Returns
true if the operation is BULK LOAD.

Reimplemented from Sql_cmd.

◆ read_fixed_length()

bool Sql_cmd_load_table::read_fixed_length ( THD thd,
COPY_INFO info,
Table_ref table_list,
READ_INFO read_info,
ulong  skip_lines 
)
private

Read of rows of fixed size + optional garbage + optional newline.

Parameters
thdPointer to THD object
infoPointer to COPY_INFO object
table_listPointer to Table_ref object
read_infoPointer to READ_INFO object
skip_linesNumber of ignored lines at the start of the file.
Returns
true if error

◆ read_sep_field()

bool Sql_cmd_load_table::read_sep_field ( THD thd,
COPY_INFO info,
Table_ref table_list,
READ_INFO read_info,
const String enclosed,
ulong  skip_lines 
)
private

Read rows in delimiter-separated formats.

Parameters
thdPointer to THD object
infoPointer to COPY_INFO object
table_listPointer to Table_ref object
read_infoPointer to READ_INFO object
enclosedENCLOSED BY character
skip_linesNumber of ignored lines at the start of the file.
Returns
true if error

◆ read_xml_field()

bool Sql_cmd_load_table::read_xml_field ( THD thd,
COPY_INFO info,
Table_ref table_list,
READ_INFO read_info,
ulong  skip_lines 
)
private

Read rows in xml format.

Parameters
thdPointer to THD object
infoPointer to COPY_INFO object
table_listPointer to Table_ref object
read_infoPointer to READ_INFO object
skip_linesNumber of ignored lines at the start of the file.
Returns
true if error

◆ sql_command_code()

enum_sql_command Sql_cmd_load_table::sql_command_code ( ) const
inlineoverridevirtual

Return the command code for this statement.

Implements Sql_cmd.

◆ truncate_table_for_bulk_load()

bool Sql_cmd_load_table::truncate_table_for_bulk_load ( THD thd,
Table_ref *const  table_ref,
dd::Table table_def 
)
private

Truncate to create a new table for BULK LOAD.

The transaction is not committed and rolls back if bulk load fails.

Parameters
thdCurrent thread
table_reftable reference
table_defdd table
Returns
true if error

◆ validate_table_for_bulk_load()

bool Sql_cmd_load_table::validate_table_for_bulk_load ( THD thd,
Table_ref *const  table_ref,
dd::Table table_def,
handlerton **  hton 
)
private

Validate table for bulk load operation.

Parameters
thdThread handle.
table_refTable_ref instance of a table.
table_defDD table instance of a table.
[out]htonHandlerton instance of table's SE.
Returns
false if bulk load can be executed on table.

◆ write_execute_load_query_log_event()

bool Sql_cmd_load_table::write_execute_load_query_log_event ( THD thd,
const char *  db_arg,
const char *  table_name_arg,
bool  is_concurrent,
enum enum_duplicates  duplicates,
bool  transactional_table,
int  errcode 
)
private
Note
Not a very useful function; just to avoid duplication of code
Returns
true if error

Member Data Documentation

◆ m_bulk_source

enum_source_type Sql_cmd_load_table::m_bulk_source
private

Source for bulk data.

◆ m_concurrency

ulong Sql_cmd_load_table::m_concurrency
private

Number of concurrent loaders to use.

◆ m_exchange

sql_exchange Sql_cmd_load_table::m_exchange

◆ m_file_count

ulong Sql_cmd_load_table::m_file_count
private

Number of input files.

◆ m_is_bulk_operation

bool Sql_cmd_load_table::m_is_bulk_operation
private

true if BULK LOAD.

◆ m_is_local_file

const bool Sql_cmd_load_table::m_is_local_file

◆ m_memory_size

ulonglong Sql_cmd_load_table::m_memory_size
private

Maximum memory size to be used in bytes.

◆ m_on_duplicate

const On_duplicate Sql_cmd_load_table::m_on_duplicate

◆ m_opt_fields_or_vars

mem_root_deque<Item *> Sql_cmd_load_table::m_opt_fields_or_vars

◆ m_opt_partitions

List<String>* const Sql_cmd_load_table::m_opt_partitions

◆ m_opt_set_expr_strings

List<String>* const Sql_cmd_load_table::m_opt_set_expr_strings

A list of strings is maintained to store the SET clause command user strings which are specified in load data operation.

This list will be used during the reconstruction of "load data" statement at the time of writing to binary log.

◆ m_opt_set_exprs

mem_root_deque<Item *> Sql_cmd_load_table::m_opt_set_exprs

◆ m_opt_set_fields

mem_root_deque<Item *> Sql_cmd_load_table::m_opt_set_fields

◆ m_ordered_data

bool Sql_cmd_load_table::m_ordered_data
private

true if input data is in order of Primary Key.

◆ m_table

Table_ident* const Sql_cmd_load_table::m_table

The documentation for this class was generated from the following files: