65 std::ostream &
print(std::ostream &out)
const;
69 std::ostream &out)
const {
70 out <<
"[Bulk_load_error_location_details: filename=" <<
filename
82 return obj.
print(out);
143 std::ostream &
print(std::ostream &out)
const;
170 sout << std::setfill(
'0') << std::setw(2) <<
std::hex
179 out <<
"[Column_text: this=" <<
static_cast<const void *
>(
this)
180 <<
", m_data_ptr=" <<
static_cast<const void *
>(
m_data_ptr)
191 return obj.
print(out);
213 void row(
char *row_begin) {
226 size_t col_index [[maybe_unused]])
const;
276 sout << std::setfill(
'0') << std::setw(2) <<
std::hex
291template <
typename Column_type>
308 template <
typename F>
316 template <
typename F>
355 Column_type &
get_column(
size_t row_offset,
size_t col_index) {
357 assert(row_offset + col_index <
m_columns.size());
358 return m_columns[row_offset + col_index];
365 Column_type &
get_col(
size_t row_index,
size_t col_index) {
378 const Column_type &
read_column(
size_t row_offset,
size_t col_index)
const {
380 assert(row_offset + col_index <
m_columns.size());
381 return m_columns[row_offset + col_index];
448 return "INTEGER_SIGNED";
450 return "INTEGER_UNSIGNED";
541 std::ostream &
print(std::ostream &out)
const;
591 return "typed_array";
609 return "medium_blob";
666 return obj.
print(out);
764 os <<
"INT_SIGNED_ASC";
780 out << col_meta.to_string() <<
", ";
788 [[maybe_unused]])
const {
824 m_error =
"JSON document has more nesting levels than supported";
827 m_error =
"Invalid JSON value is encountered";
830 const char *message [[maybe_unused]])
const {
832 m_error +=
" (Internal Error)";
867 size_t &next_index,
char *
buffer,
size_t &buffer_length,
882 size_t start_index,
size_t &consumed_length,
918 std::vector<Row_meta> &metadata));
942 (
THD * thd, const
TABLE *
table,
size_t keynr,
size_t data_size,
982 Blob_context blob_ctx,
unsigned char *blobref,
size_t thread,
983 const
unsigned char *data,
size_t data_len));
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
constexpr size_t BLOB_REF_SIZE
The blob reference size.
Definition: bulk_data_service.h:52
void * Blob_context
Definition: bulk_data_service.h:49
std::ostream & operator<<(std::ostream &out, const Bulk_load_error_location_details &obj)
Overloading the global output operator to print objects of type Bulk_load_error_location_details.
Definition: bulk_data_service.h:80
Definition: bulk_data_service.h:798
const char * c_str() const
Definition: bulk_data_service.h:807
void KeyTooBig() const override
Called when a JSON object contains a member with a name that is longer than supported by the JSON bin...
Definition: bulk_data_service.h:815
std::string get_error() const
Definition: bulk_data_service.h:809
std::string m_error
Definition: bulk_data_service.h:812
void InternalError(const char *message) const override
Called when an internal error occurs.
Definition: bulk_data_service.h:829
void ValueTooBig() const override
Called when a JSON document is too big to be stored in the JSON binary format.
Definition: bulk_data_service.h:819
void TooDeep() const override
Called when a JSON document has more nesting levels than supported.
Definition: bulk_data_service.h:823
void InvalidJson() const override
Called when an invalid JSON value is encountered.
Definition: bulk_data_service.h:826
bool CheckStack() const override
Check if the stack is about to be exhausted, and report the error.
Definition: bulk_data_service.h:835
Error handler for the functions that serialize a JSON value in the JSON binary storage format.
Definition: json_error_handler.h:49
Implements the row and column memory management for parse and load operations.
Definition: bulk_data_service.h:292
bool set_num_rows(size_t n_rows)
Set the number of rows.
Definition: bulk_data_service.h:388
std::vector< Column_type > m_columns
All the columns.
Definition: bulk_data_service.h:419
size_t get_next_row_offset(size_t &offset) const
Get next row offset from current row offset.
Definition: bulk_data_service.h:346
Column_type & get_col(size_t col_offset)
Get column using the column offset.
Definition: bulk_data_service.h:372
bool process_columns(size_t row_index, F &&cbk)
Process all columns, invoking callback for each.
Definition: bulk_data_service.h:309
bool process_columns_by_offset(size_t row_offset, F &&cbk)
Definition: bulk_data_service.h:317
size_t get_num_cols() const
Definition: bulk_data_service.h:302
void reset()
Definition: bulk_data_service.h:329
size_t m_num_rows
Number of rows.
Definition: bulk_data_service.h:422
size_t get_row_offset(size_t row_index) const
Get current row offset to access columns.
Definition: bulk_data_service.h:338
size_t get_num_rows() const
Definition: bulk_data_service.h:299
const Column_type & read_column(size_t row_offset, size_t col_index) const
Get constant column for reading using row offset and column index.
Definition: bulk_data_service.h:378
Column_type & get_col(size_t row_index, size_t col_index)
Get column using row index and column index.
Definition: bulk_data_service.h:365
Row_bunch(size_t n_cols)
Create a new row bunch.
Definition: bulk_data_service.h:296
static const size_t S_MAX_TOTAL_COLS
Limit allocation up to 600M columns.
Definition: bulk_data_service.h:415
size_t m_num_columns
Number of columns in each row.
Definition: bulk_data_service.h:425
Column_type & get_column(size_t row_offset, size_t col_index)
Get column using row offset and column index.
Definition: bulk_data_service.h:355
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
This file contains the field type.
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:55
@ MYSQL_TYPE_BOOL
Currently just a placeholder.
Definition: field_types.h:79
@ MYSQL_TYPE_TIME2
Internal to MySQL.
Definition: field_types.h:75
@ MYSQL_TYPE_VARCHAR
Definition: field_types.h:71
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:86
@ MYSQL_TYPE_VAR_STRING
Definition: field_types.h:88
@ MYSQL_TYPE_BLOB
Definition: field_types.h:87
@ MYSQL_TYPE_TINY
Definition: field_types.h:57
@ MYSQL_TYPE_TIME
Definition: field_types.h:67
@ MYSQL_TYPE_SET
Definition: field_types.h:83
@ MYSQL_TYPE_NEWDATE
Internal to MySQL.
Definition: field_types.h:70
@ MYSQL_TYPE_VECTOR
Definition: field_types.h:77
@ MYSQL_TYPE_JSON
Definition: field_types.h:80
@ MYSQL_TYPE_STRING
Definition: field_types.h:89
@ MYSQL_TYPE_NULL
Definition: field_types.h:62
@ MYSQL_TYPE_ENUM
Definition: field_types.h:82
@ MYSQL_TYPE_TINY_BLOB
Definition: field_types.h:84
@ MYSQL_TYPE_LONG
Definition: field_types.h:59
@ MYSQL_TYPE_BIT
Definition: field_types.h:72
@ MYSQL_TYPE_INVALID
Definition: field_types.h:78
@ MYSQL_TYPE_GEOMETRY
Definition: field_types.h:90
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:81
@ MYSQL_TYPE_DECIMAL
Definition: field_types.h:56
@ MYSQL_TYPE_TYPED_ARRAY
Used for replication only.
Definition: field_types.h:76
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:61
@ MYSQL_TYPE_MEDIUM_BLOB
Definition: field_types.h:85
@ MYSQL_TYPE_DATETIME2
Internal to MySQL.
Definition: field_types.h:74
@ MYSQL_TYPE_SHORT
Definition: field_types.h:58
@ MYSQL_TYPE_DATE
Definition: field_types.h:66
@ MYSQL_TYPE_FLOAT
Definition: field_types.h:60
@ MYSQL_TYPE_TIMESTAMP
Definition: field_types.h:63
@ MYSQL_TYPE_INT24
Definition: field_types.h:65
@ MYSQL_TYPE_DATETIME
Definition: field_types.h:68
@ MYSQL_TYPE_TIMESTAMP2
Definition: field_types.h:73
@ MYSQL_TYPE_YEAR
Definition: field_types.h:69
static uint16 key1[1001]
Definition: hp_test2.cc:50
#define F
Definition: jit_executor_value.cc:374
void error(const char *format,...)
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:1818
bool get_table_metadata(THD *thd, const TABLE *table, Table_meta &table_meta) noexcept
Definition: bulk_data_service.cc:2421
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:1849
bool get_row_metadata_all(THD *thd, const TABLE *table, bool have_key, std::vector< Row_meta > &row_meta_all) noexcept
Definition: bulk_data_service.cc:2430
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:1759
bool is_killed(THD *thd) noexcept
Definition: bulk_data_service.cc:1901
bool open_blob(THD *thd, void *load_ctx, const TABLE *table, Blob_context &blob_ctx, unsigned char *blobref, size_t thread) noexcept
Definition: bulk_data_service.cc:2485
size_t get_se_memory_size(THD *thd, const TABLE *table) noexcept
Definition: bulk_data_service.cc:2593
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) noexcept
Definition: bulk_data_service.cc:2495
bool close_blob(THD *thd, void *load_ctx, const TABLE *table, Blob_context blob_ctx, unsigned char *blobref, size_t thread) noexcept
Definition: bulk_data_service.cc:2503
bool is_table_supported(THD *thd, const TABLE *table) noexcept
Definition: bulk_data_service.cc:2597
Definition: bulk_data_service.h:795
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
const std::string charset("charset")
bool load(THD *, const dd::String_type &fname, dd::String_type *buf)
Read an sdi file from disk and store in a buffer.
Definition: sdi_file.cc:308
std::string hex(const Container &c)
Definition: hex.h:61
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:75
int key_type
Definition: method.h:38
Definition: aligned_atomic.h:44
ValueType max(X &&first)
Definition: gtid.h:103
const char * begin(const char *const c)
Definition: base64.h:44
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
std::basic_ostringstream< char, std::char_traits< char >, ut::allocator< char > > ostringstream
Specialization of basic_ostringstream which uses ut::allocator.
Definition: ut0new.h:2872
#define DECLARE_METHOD(retval, name, args)
Declares a method as a part of the Service definition.
Definition: service.h:103
#define END_SERVICE_DEFINITION(name)
A macro to end the last Service definition started with the BEGIN_SERVICE_DEFINITION macro.
Definition: service.h:91
#define BEGIN_SERVICE_DEFINITION(name)
Declares a new Service.
Definition: service.h:86
Callbacks for collecting time statistics.
Definition: bulk_data_service.h:840
std::function< void()> m_fn_begin
Definition: bulk_data_service.h:842
std::function< void()> m_fn_end
Definition: bulk_data_service.h:844
Definition: bulk_data_service.h:54
std::string filename
Definition: bulk_data_service.h:55
std::string m_table_name
Definition: bulk_data_service.h:61
size_t m_bytes
Definition: bulk_data_service.h:62
size_t row_number
Definition: bulk_data_service.h:56
std::string column_input_data
Definition: bulk_data_service.h:59
std::string column_name
Definition: bulk_data_service.h:57
size_t m_column_length
Definition: bulk_data_service.h:63
std::string m_error_mesg
Definition: bulk_data_service.h:60
std::ostream & print(std::ostream &out) const
Definition: bulk_data_service.h:68
std::string column_type
Definition: bulk_data_service.h:58
Definition: m_ctype.h:421
Definition: bulk_data_service.h:196
uint64_t m_int_data
Column data in integer format.
Definition: bulk_data_service.h:229
std::string to_string() const
Definition: bulk_data_service.h:252
bool m_is_null
If column is NULL.
Definition: bulk_data_service.h:204
char * get_row_begin(const Row_meta &row_meta, size_t col_index) const
Get the pointer to the beginning of row.
Definition: bulk_data_service.h:786
char * m_data_ptr
Column data or row begin.
Definition: bulk_data_service.h:249
char * get_data() const
Definition: bulk_data_service.h:206
int16_t m_type
Column Data Type.
Definition: bulk_data_service.h:198
uint16_t m_data_len
Column data length.
Definition: bulk_data_service.h:201
void set_data(char *ptr)
Definition: bulk_data_service.h:208
void init()
Definition: bulk_data_service.h:231
void row(char *row_begin)
Save the beginning of the row pointer in this object.
Definition: bulk_data_service.h:213
Definition: bulk_data_service.h:85
bool is_null() const
Check if the column is null, by checking special value for length.
Definition: bulk_data_service.h:102
bool is_ext_relaxed() const
Check if the column data is stored externally.
Definition: bulk_data_service.h:122
bool m_is_ext
If true, the column data is stored externally.
Definition: bulk_data_service.h:149
void set_null()
Mark the column to be null, by setting length to a special value.
Definition: bulk_data_service.h:95
std::ostream & print(std::ostream &out) const
Print this object into the given output stream.
Definition: bulk_data_service.h:178
const char * m_data_ptr
Column data.
Definition: bulk_data_service.h:87
void init()
Initialize the members.
Definition: bulk_data_service.h:134
void set_ext()
Mark that the column data has been stored externally.
Definition: bulk_data_service.h:128
bool is_ext() const
Check if the column data is stored externally.
Definition: bulk_data_service.h:113
size_t m_data_len
Column data length.
Definition: bulk_data_service.h:90
std::string to_string() const
Definition: bulk_data_service.h:152