MySQL 8.4.0
Source Code Documentation
mysql_bulk_data.h
Go to the documentation of this file.
1/* Copyright (c) 2022, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23*/
24
25#pragma once
26
29
30namespace Bulk_data_convert {
31
33 (THD * thd, const TABLE *table, const Rows_text &text_rows,
34 size_t &next_index, char *buffer, size_t &buffer_length,
35 const CHARSET_INFO *charset, const Row_meta &metadata,
36 Rows_mysql &sql_rows,
37 Bulk_load_error_location_details &error_details));
38
40 (char *buffer, size_t buffer_length, const Row_meta &metadata,
41 size_t start_index, size_t &consumed_length,
42 Rows_mysql &sql_rows));
43
45 (const Row_meta &metadata, const Rows_mysql &sql_keys,
46 size_t key_offset, Rows_mysql &sql_rows, size_t sql_index));
47
48DEFINE_METHOD(bool, is_killed, (THD * thd));
49
51 (const Column_mysql &key1, const Column_mysql &key2,
52 const Column_meta &col_meta));
53
55 (THD * thd, const TABLE *table, bool have_key,
56 Row_meta &metadata));
57
58} // namespace Bulk_data_convert
59
60namespace Bulk_data_load {
61
62DEFINE_METHOD(void *, begin,
63 (THD * thd, const TABLE *table, size_t data_size, size_t memory,
64 size_t num_threads));
65
67 (THD * thd, void *ctx, const TABLE *table,
68 const Rows_mysql &sql_rows, size_t thread,
69 Bulk_load::Stat_callbacks &wait_cbks));
70
71DEFINE_METHOD(bool, end,
72 (THD * thd, void *ctx, const TABLE *table, bool error));
73
74DEFINE_METHOD(bool, is_table_supported, (THD * thd, const TABLE *table));
75
76DEFINE_METHOD(size_t, get_se_memory_size, (THD * thd, const TABLE *table));
77
78} // namespace Bulk_data_load
Services for bulk data conversion and load to SE.
Implements the row and column memory management for parse and load operations.
Definition: bulk_data_service.h:86
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Specifies macros to define Components.
static uint16 key1[1001]
Definition: hp_test2.cc:50
Definition: bulk_data_service.cc:43
int mysql_format_from_raw(char *buffer, size_t buffer_length, const Row_meta &metadata, size_t start_index, size_t &consumed_length, Rows_mysql &sql_rows) noexcept
Definition: bulk_data_service.cc:1160
int mysql_format(THD *thd, const TABLE *table, const Rows_text &text_rows, size_t &next_index, char *buffer, size_t &buffer_length, const CHARSET_INFO *charset, const Row_meta &metadata, Rows_mysql &sql_rows, Bulk_load_error_location_details &error_details) noexcept
Definition: bulk_data_service.cc:1189
int compare_keys(const Column_mysql &key1, const Column_mysql &key2, const Column_meta &col_meta) noexcept
Definition: bulk_data_service.cc:1248
bool get_row_metadata(THD *, const TABLE *table, bool have_key, Row_meta &metadata) noexcept
Definition: bulk_data_service.cc:1392
int mysql_format_using_key(const Row_meta &metadata, const Rows_mysql &sql_keys, size_t key_offset, Rows_mysql &sql_rows, size_t sql_index) noexcept
Definition: bulk_data_service.cc:1139
bool is_killed(THD *thd) noexcept
Definition: bulk_data_service.cc:1241
Definition: bulk_data_service.cc:1530
void * begin(THD *thd, const TABLE *table, size_t data_size, size_t memory, size_t num_threads) noexcept
Definition: bulk_data_service.cc:1534
size_t get_se_memory_size(THD *thd, const TABLE *table) noexcept
Definition: bulk_data_service.cc:1633
bool end(THD *thd, void *ctx, const TABLE *table, bool error) noexcept
Definition: bulk_data_service.cc:1549
bool load(THD *thd, void *ctx, const TABLE *table, const Rows_mysql &sql_rows, size_t thread, Bulk_load::Stat_callbacks &wait_cbks) noexcept
Definition: bulk_data_service.cc:1542
bool is_table_supported(THD *thd, const TABLE *table) noexcept
Definition: bulk_data_service.cc:1637
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
const std::string charset("charset")
Definition: aligned_atomic.h:44
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
#define DEFINE_METHOD(retval, name, args)
A macro to ensure method implementation has required properties, that is it does not throw exceptions...
Definition: service_implementation.h:79
Callbacks for collecting time statistics.
Definition: bulk_data_service.h:324
Definition: bulk_data_service.h:45
Definition: m_ctype.h:423
Column metadata information.
Definition: bulk_data_service.h:207
Definition: bulk_data_service.h:61
Row metadata.
Definition: bulk_data_service.h:277
Definition: table.h:1405