177 const byte *mysql_data,
275#ifndef UNIV_HOTBACKUP
289 MY_ATTRIBUTE((nonnull));
330 const ulint *field_lengths,
363 const char *op_info);
416 const char *new_name,
427 trx_t *
trx, std::vector<dict_index_t *> &indexes,
size_t max_threads,
443 bool check_keys,
ulint *n_rows);
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:47
The index tree persistent cursor.
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
The class defining a handle to an InnoDB table.
Definition: ha_innodb.h:87
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4573
Definition: sess0sess.h:71
Definition: row0mysql.h:652
row_is_reading_range_guard_t(row_prebuilt_t &prebuilt)
Definition: row0mysql.h:654
A RAII-style class, which sets a given boolean to true in constructor, and to false in destructor,...
Definition: ut0bool_scope_guard.h:39
bool_scope_guard_t(bool &active)
Creates the RAII guard which sets active to true for the duration of its lifetime.
Definition: ut0bool_scope_guard.h:48
void dtuple_set_n_fields(dtuple_t *tuple, ulint n_fields)
Sets number of fields used in a tuple.
Definition: data0data.cc:96
SQL data field and tuple.
constexpr uint32_t DATA_ROW_ID_LEN
stored length for row id
Definition: data0type.h:179
Global error codes for the database.
dberr_t
Definition: db0err.h:39
void dict_index_copy_types(dtuple_t *tuple, const dict_index_t *index, ulint n_fields)
Copies types of fields contained in index to tuple.
Definition: dict0dict.cc:2868
Data dictionary global types.
Full text search header file.
uint64_t doc_id_t
Document id type.
Definition: fts0fts.h:79
Prototypes for global functions in ha_innodb.cc that are called by InnoDB C code.
Undo logging small changes to BLOBs.
The transaction lock system global types.
select_mode
Definition: lock0types.h:45
lock_mode
Definition: lock0types.h:52
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
static uint update
Definition: myisamlog.cc:94
static const char * filepath
Definition: myisamlog.cc:97
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
Definition: buf0block_hint.cc:30
PT & ref(PT *tp)
Definition: tablespace_impl.cc:359
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
mode
Definition: file_handle.h:61
This file contains a set of libraries providing overloads for regular dynamic allocation routines whi...
Definition: aligned_alloc.h:48
Query graph global types.
Record manager global types.
byte rec_t
Definition: rem0types.h:41
constexpr uint32_t ROW_MYSQL_NO_TEMPLATE
Definition: row0mysql.h:988
dberr_t row_drop_table_for_mysql(const char *name, trx_t *trx, bool nonatomic, dict_table_t *handler=nullptr)
Drop a table for MySQL.
Definition: row0mysql.cc:3732
void innobase_rename_vc_templ(dict_table_t *table)
Change dbname and table name in table->vc_templ.
Definition: ha_innodb.cc:23744
constexpr uint32_t ROW_PREBUILT_ALLOCATED
Definition: row0mysql.h:509
constexpr uint32_t ROW_READ_WITH_LOCKS
Definition: row0mysql.h:997
dberr_t row_mysql_lock_table(trx_t *trx, dict_table_t *table, enum lock_mode mode, const char *op_info)
Sets an exclusive lock on a table.
Definition: row0mysql.cc:3568
constexpr uint32_t ROW_PREBUILT_FETCH_MAGIC_N
Definition: row0mysql.h:984
void row_mysql_store_blob_ref(byte *dest, ulint col_len, const void *data, ulint len)
Stores a reference to a BLOB in the MySQL format.
Definition: row0mysql.cc:213
byte * row_mysql_store_col_in_innobase_format(dfield_t *dfield, byte *buf, bool row_format_col, const byte *mysql_data, ulint col_len, ulint comp)
Stores a non-SQL-NULL field given in the MySQL format in the InnoDB format.
Definition: row0mysql.cc:376
constexpr uint32_t ROW_RETRIEVE_PRIMARY_KEY
Definition: row0mysql.h:993
dberr_t row_create_index_for_mysql(dict_index_t *index, trx_t *trx, const ulint *field_lengths, dict_table_t *handler)
Does an index creation operation for MySQL.
Definition: row0mysql.cc:2870
void row_mysql_store_geometry(byte *dest, ulint dest_len, const byte *src, ulint src_len)
Converts InnoDB geometry data format to MySQL data format.
Definition: row0mysql.cc:246
dfield_t * innobase_get_computed_value(const dtuple_t *row, const dict_v_col_t *col, const dict_index_t *index, mem_heap_t **local_heap, mem_heap_t *heap, const dict_field_t *ifield, THD *thd, TABLE *mysql_table, const dict_table_t *old_table, upd_t *parent_update, dict_foreign_t *foreign)
Get the computed value by supplying the base column values.
Definition: ha_innodb.cc:23797
const byte * row_mysql_read_true_varchar(ulint *len, const byte *field, ulint lenlen)
Reads a >= 5.0.3 format true VARCHAR length, in the MySQL row format, and returns a pointer to the da...
Definition: row0mysql.cc:186
dberr_t row_mysql_parallel_select_count_star(trx_t *trx, std::vector< dict_index_t * > &indexes, size_t max_threads, ulint *n_rows)
Read the total number of records in a consistent view.
Definition: row0mysql.cc:4338
constexpr uint32_t ROW_MYSQL_DUMMY_TEMPLATE
dummy template used in row_scan_and_check_index
Definition: row0mysql.h:990
void innobase_get_multi_value(const TABLE *mysql_table, ulint f_idx, dfield_t *dfield, multi_value_data *value, uint old_val, ulint comp, mem_heap_t *heap)
Parse out multi-values from a MySQL record.
Definition: ha_innodb.cc:9182
dberr_t row_scan_index_for_mysql(row_prebuilt_t *prebuilt, dict_index_t *index, size_t n_threads, bool check_keys, ulint *n_rows)
Scans an index for either COUNT(*) or CHECK TABLE.
Definition: row0mysql.cc:4536
const byte * row_mysql_read_blob_ref(ulint *len, const byte *ref, ulint col_len)
Reads a reference to a BLOB in the MySQL format.
Definition: row0mysql.cc:234
dberr_t row_create_table_for_mysql(dict_table_t *&table, const char *compression, const HA_CREATE_INFO *create_info, trx_t *trx, mem_heap_t *heap)
Creates a table for MySQL.
Definition: row0mysql.cc:2720
dberr_t row_update_cascade_for_mysql(que_thr_t *thr, upd_node_t *node, dict_table_t *table)
Does a cascaded delete or set null in a foreign key operation.
Definition: row0mysql.cc:2565
void row_mysql_unlock_data_dictionary(trx_t *trx)
Unlocks the data dictionary exclusive lock.
Definition: row0mysql.cc:2707
constexpr uint32_t ROW_PREBUILT_FREED
Definition: row0mysql.h:510
void row_wait_for_background_drop_list_empty()
Wait for the background drop list to become empty.
Definition: row0mysql.cc:128
void row_mysql_unfreeze_data_dictionary(trx_t *trx)
Unlocks the data dictionary shared lock.
Definition: row0mysql.cc:2680
constexpr uint32_t MYSQL_FETCH_CACHE_SIZE
Definition: row0mysql.h:505
dberr_t row_discard_tablespace_for_mysql(const char *name, trx_t *trx)
Discards the tablespace of a table which stored in an .ibd file.
Definition: row0mysql.cc:3513
dberr_t row_table_load_foreign_constraints(trx_t *trx, const char *name, const dd::Table *dd_table)
Loads foreign key constraints for the table being created.
Definition: row0mysql.cc:3027
dberr_t row_update_for_mysql(const byte *mysql_rec, row_prebuilt_t *prebuilt)
Does an update or delete of a row for MySQL.
Definition: row0mysql.cc:2439
void row_mysql_prebuilt_free_blob_heap(row_prebuilt_t *prebuilt)
Frees the blob heap in prebuilt when no longer needed.
Definition: row0mysql.cc:147
row_prebuilt_t * row_create_prebuilt(dict_table_t *table, ulint mysql_row_len)
Create a prebuilt struct for a MySQL table handle.
Definition: row0mysql.cc:781
dberr_t row_drop_database_for_mysql(const char *name, trx_t *trx, ulint *found)
Drop a database for MySQL.
dberr_t row_lock_table_autoinc_for_mysql(row_prebuilt_t *prebuilt)
Sets an AUTO_INC type lock on the table mentioned in prebuilt.
Definition: row0mysql.cc:1144
constexpr uint32_t ROW_MYSQL_WHOLE_ROW
Definition: row0mysql.h:986
ulint row_drop_tables_for_mysql_in_background(void)
The master thread in srv0srv.cc calls this regularly to drop tables which we must drop in background ...
Definition: row0mysql.cc:3132
constexpr uint32_t ROW_READ_DID_SEMI_CONSISTENT
Definition: row0mysql.h:999
byte * row_mysql_store_true_var_len(byte *dest, ulint len, ulint lenlen)
Stores a >= 5.0.3 format true VARCHAR length to dest, in the MySQL row format.
Definition: row0mysql.cc:161
upd_t * row_get_prebuilt_update_vector(row_prebuilt_t *prebuilt)
Gets pointer to a prebuilt update vector used in updates.
Definition: row0mysql.cc:1782
dfield_t * innobase_get_field_from_update_vector(dict_foreign_t *foreign, upd_t *update, uint32_t col_no)
Get the updated parent field value from the update vector for the given col_no.
Definition: ha_innodb.cc:23755
constexpr uint32_t ROW_RETRIEVE_ALL_COLS
Definition: row0mysql.h:994
void row_mysql_freeze_data_dictionary(trx_t *trx, ut::Location location)
Locks the data dictionary in shared mode from modifications, for performing foreign key check,...
Definition: row0mysql.cc:2671
void row_mysql_pad_col(ulint mbminlen, byte *pad, ulint len)
Pad a column with spaces.
Definition: row0mysql.cc:339
bool row_is_mysql_tmp_table_name(const char *name)
Checks if a table name contains the string "/#sql" which denotes temporary tables in MySQL.
Definition: row0mysql.cc:4120
void row_mysql_close(void)
Close this module.
Definition: row0mysql.cc:4743
void row_update_prebuilt_trx(row_prebuilt_t *prebuilt, trx_t *trx)
Updates the transaction pointers in query graphs stored in the prebuilt struct.
Definition: row0mysql.cc:1004
dberr_t row_rename_table_for_mysql(const char *old_name, const char *new_name, const dd::Table *dd_table, trx_t *trx, bool replay)
Renames a table for MySQL.
Definition: row0mysql.cc:4132
bool row_mysql_handle_errors(dberr_t *new_err, trx_t *trx, que_thr_t *thr, trx_savept_t *savept)
Handles user errors and lock waits detected by the database engine.
Definition: row0mysql.cc:653
void row_prebuilt_free(row_prebuilt_t *prebuilt, bool dict_locked)
Free a prebuilt struct for a MySQL table handle.
Definition: row0mysql.cc:931
constexpr uint32_t ROW_MYSQL_REC_FIELDS
Definition: row0mysql.h:987
void row_mysql_lock_data_dictionary(trx_t *trx, ut::Location location)
Locks the data dictionary exclusively for performing a table create or other data dictionary modifica...
Definition: row0mysql.cc:2693
constexpr uint32_t ROW_READ_TRY_SEMI_CONSISTENT
Definition: row0mysql.h:998
bool row_rollback_on_timeout
Provide optional 4.x backwards compatibility for 5.0 and above.
Definition: row0mysql.cc:94
void innobase_init_vc_templ(dict_table_t *table)
Get the computed value by supplying the base column values.
Definition: ha_innodb.cc:23710
upd_node_t * row_create_update_node_for_mysql(dict_table_t *table, mem_heap_t *heap)
Creates an query graph node of 'update' type to be used in the MySQL interface.
Definition: row0mysql.cc:1737
void row_mysql_init(void)
Initialize this module.
Definition: row0mysql.cc:4736
bool row_table_got_default_clust_index(const dict_table_t *table)
Checks if a table is such that we automatically created a clustered index on it (on row id).
Definition: row0mysql.cc:2657
dberr_t row_lock_table(row_prebuilt_t *prebuilt)
Sets a table lock on the table mentioned in prebuilt.
Definition: row0mysql.cc:1213
void row_delete_all_rows(dict_table_t *table)
Delete all rows for the given table by freeing/truncating indexes.
Definition: row0mysql.cc:2452
dberr_t row_drop_tablespace(space_id_t space_id, const char *filepath)
Drop a tablespace as part of dropping or renaming a table.
Definition: row0mysql.cc:3695
void row_prebuild_sel_graph(row_prebuilt_t *prebuilt)
Builds a dummy query graph used in selects.
Definition: row0mysql.cc:1718
constexpr uint32_t MYSQL_FETCH_CACHE_THRESHOLD
Definition: row0mysql.h:507
dberr_t row_insert_for_mysql(const byte *mysql_rec, row_prebuilt_t *prebuilt)
Does an insert for MySQL.
Definition: row0mysql.cc:1707
Row operation global types.
InnoDB session state tracker.
Representation of an SQL command.
case opt name
Definition: sslopt-case.h:29
Struct to hold information about the table that should be created.
Definition: handler.h:3202
Callback for row_mysql_sys_index_iterate()
Definition: row0mysql.h:923
virtual ~SysIndexCallback()=default
virtual void operator()(mtr_t *mtr, btr_pcur_t *pcur) noexcept=0
Callback method.
Definition: btr0pcur.h:99
Structure for an SQL data field.
Definition: data0data.h:605
Data structure for a field in an index.
Definition: dict0mem.h:895
Data structure for a foreign key constraint; an example: FOREIGN KEY (A, B) REFERENCES TABLE2 (C,...
Definition: dict0mem.h:1666
Data structure for an index.
Definition: dict0mem.h:1046
unsigned n_fields
number of fields in the index
Definition: dict0mem.h:1106
Data structure for a database table.
Definition: dict0mem.h:1909
Data structure for a virtual column in a table.
Definition: dict0mem.h:815
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:682
Definition: row0ins.h:162
The list of modifications to be applied on LOBs to get older versions.
Definition: lob0undo.h:146
void reset()
Empty the collected LOB undo information from cache.
Definition: lob0undo.h:190
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
Structure to hold number of multiple values.
Definition: data0data.h:384
Definition: row0mysql.h:455
ulint mysql_null_byte_offset
MySQL NULL bit byte offset in a MySQL record.
Definition: row0mysql.h:475
ulint mysql_col_offset
offset of the column in the MySQL row format
Definition: row0mysql.h:470
ulint rec_field_no
field number of the column in an Innobase record in the current index; not defined if template_type i...
Definition: row0mysql.h:457
ulint is_unsigned
if a column type is an integer type and this field is != 0, then it is an unsigned integer type
Definition: row0mysql.h:497
ulint mysql_type
MySQL type code; this is always < 256.
Definition: row0mysql.h:481
ulint mbminlen
minimum length of a char, in bytes, or zero if not a char type
Definition: row0mysql.h:493
ulint mbmaxlen
maximum length of a char, in bytes, or zero if not a char type
Definition: row0mysql.h:495
ulint mysql_length_bytes
if mysql_type == DATA_MYSQL_TRUE_VARCHAR, this tells whether we should use 1 or 2 bytes to store the ...
Definition: row0mysql.h:483
ulint mysql_null_bit_mask
bit mask to get the NULL bit, zero if column cannot be NULL
Definition: row0mysql.h:477
ulint is_virtual
if a column is a virtual column
Definition: row0mysql.h:500
ulint col_no
column number of the column
Definition: row0mysql.h:456
ulint is_multi_val
if a column is a Multi-Value Array virtual column
Definition: row0mysql.h:501
ulint type
column type in Innobase mtype numbers DATA_CHAR...
Definition: row0mysql.h:479
ulint mysql_col_len
length of the column in the MySQL row format
Definition: row0mysql.h:472
ulint clust_rec_field_no
field number of the column in an Innobase record in the clustered index; not defined if template_type...
Definition: row0mysql.h:461
ulint mysql_mvidx_len
index length on multi-value array
Definition: row0mysql.h:474
ulint icp_rec_field_no
field number of the column in an Innobase record in the current index; only defined for columns that ...
Definition: row0mysql.h:465
ulint charset
MySQL charset-collation code of the column, or zero.
Definition: row0mysql.h:491
Definition: que0que.h:301
Definition: que0que.h:242
A struct for (sometimes lazily) prebuilt structures in an Innobase table handle used within MySQL; th...
Definition: row0mysql.h:515
bool m_read_virtual_key
Return materialized key for secondary index scan.
Definition: row0mysql.h:826
trx_id_t trx_id
The table->def_trx_id when ins_graph was built.
Definition: row0mysql.h:619
unsigned used_in_HANDLER
true if we have been using this handle in a MySQL HANDLER low level index cursor command: then we mus...
Definition: row0mysql.h:543
byte * srch_key_val2
buffer used in converting search key values from MySQL format to InnoDB format.
Definition: row0mysql.h:812
upd_node_t * upd_node
Innobase SQL update node used to perform updates and deletes.
Definition: row0mysql.h:617
unsigned sql_stat_start
true when we start processing of an SQL statement: we may have to set an intention lock on the table,...
Definition: row0mysql.h:524
row_prebuilt_t(row_prebuilt_t &&)=delete
innodb_session_t * session
InnoDB session handler.
Definition: row0mysql.h:808
multi_value_data * mv_data
Definition: row0mysql.h:605
dict_table_t * table
Innobase table handle.
Definition: row0mysql.h:520
const byte * default_rec
the default values of all columns (a "default row") in MySQL format
Definition: row0mysql.h:606
ulonglong m_fts_limit
limit value to avoid fts result overflow
Definition: row0mysql.h:843
void lob_undo_reset()
Definition: row0mysql.h:853
unsigned replace
1 if extra(HA_EXTRA_WRITE_CAN_REPLACE) was requested, which happen when REPLACE is done instead of re...
Definition: row0mysql.h:584
size_t new_rec_locks_count() const
Counts how many elements of.
Definition: row0mysql.h:892
dtuple_t * search_tuple
prebuilt dtuple used in selects
Definition: row0mysql.h:632
ulint hint_need_to_fetch_extra_cols
normally this is set to 0; if this is set to ROW_RETRIEVE_PRIMARY_KEY, then we should at least retrie...
Definition: row0mysql.h:608
mysql_row_templ_t * mysql_template
template used to transform rows fast between MySQL and Innobase formats; memory for this template is ...
Definition: row0mysql.h:588
ulint mysql_prefix_len
byte offset of the end of the last requested column
Definition: row0mysql.h:709
doc_id_t fts_doc_id
Definition: row0mysql.h:671
bool keep_other_fields_on_keyread
when using fetch cache with HA_EXTRA_KEYREAD, don't overwrite other fields in mysql row row buffer.
Definition: row0mysql.h:763
@ LOCK_PCUR
Definition: row0mysql.h:739
@ LOCK_COUNT
Definition: row0mysql.h:741
@ LOCK_CLUST_PCUR
Definition: row0mysql.h:740
ulint select_lock_type
LOCK_NONE, LOCK_S, or LOCK_X.
Definition: row0mysql.h:679
bool no_autoinc_locking
true, if we were asked to skip AUTOINC locking for the table.
Definition: row0mysql.h:823
row_prebuilt_t(row_prebuilt_t const &)=delete
It is unsafe to copy this struct, and moving it would be non-trivial, because we want to keep in sync...
row_prebuilt_t & operator=(row_prebuilt_t const &)=delete
ulonglong autoinc_offset
The offset passed to get_auto_increment() by MySQL.
Definition: row0mysql.h:777
void end_stmt()
Inside this function perform activity that needs to be done at the end of statement.
Definition: row0mysql.cc:4806
ulint innodb_api_rec_size
Size of the Innodb API record.
Definition: row0mysql.h:796
unsigned innodb_api
whether this is a InnoDB API query
Definition: row0mysql.h:791
btr_pcur_t * clust_pcur
persistent cursor used in some selects and updates
Definition: row0mysql.h:628
unsigned templ_contains_fixed_point
true if the template contains a column with DATA_POINT.
Definition: row0mysql.h:571
unsigned null_bitmap_len
number of bytes in the SQL NULL bitmap at the start of a row in the MySQL format
Definition: row0mysql.h:556
bool ins_sel_stmt
if true then ins_sel_statement.
Definition: row0mysql.h:806
mem_heap_t * blob_heap
in SELECTS BLOB fields are copied to this heap
Definition: row0mysql.h:734
bool m_is_reading_range
Set to true iff we are inside read_range_first() or read_range_next()
Definition: row0mysql.h:647
ins_node_t * ins_node
Innobase SQL insert node used to perform inserts to the table.
Definition: row0mysql.h:598
bool m_no_prefetch
Disable prefetch.
Definition: row0mysql.h:817
unsigned n_template
number of elements in the template
Definition: row0mysql.h:554
bool m_temp_tree_modified
Whether tree modifying operation happened on a temporary (intrinsic) table index tree.
Definition: row0mysql.h:834
unsigned on_duplicate_key_update
1 if extra(HA_EXTRA_INSERT_WITH_UPDATE) was requested, which happens when ON DUPLICATE KEY UPDATE cla...
Definition: row0mysql.h:580
btr_pcur_t * pcur
persistent cursor used in selects and updates
Definition: row0mysql.h:626
ulint n_fetch_cached
number of not yet fetched rows in fetch_cache
Definition: row0mysql.h:732
std::bitset< LOCK_COUNT > new_rec_lock
normally false; if session is using READ COMMITTED or READ UNCOMMITTED isolation level,...
Definition: row0mysql.h:762
lob::undo_vers_t * get_lob_undo()
Definition: row0mysql.h:851
mem_heap_t * cursor_heap
memory heap from which innodb_api_buf is allocated per session
Definition: row0mysql.h:595
ulonglong autoinc_increment
The increment step of the auto increment column.
Definition: row0mysql.h:773
unsigned templ_contains_blob
true if the template contains a column with DATA_LARGE_MTYPE( get_innobase_type_from_mysql_type()) is...
Definition: row0mysql.h:564
ulint idx_cond_n_cols
Number of fields in idx_cond_cols.
Definition: row0mysql.h:788
ulint row_read_type
ROW_READ_WITH_LOCKS if row locks should be the obtained for records under an UPDATE or DELETE cursor.
Definition: row0mysql.h:682
lob::undo_vers_t m_lob_undo
Undo information for LOB mvcc.
Definition: row0mysql.h:849
ha_innobase * m_mysql_handler
The MySQL handler object.
Definition: row0mysql.h:840
bool in_fts_query
Whether we are in a FTS query.
Definition: row0mysql.h:767
bool no_read_locking
true, if server has called ha_extra(HA_EXTRA_NO_READ_LOCKING)
Definition: row0mysql.h:820
mem_heap_t * old_vers_heap
memory heap where a previous version is built in consistent read
Definition: row0mysql.h:736
bool is_reading_range() const
Definition: row0mysql.h:650
bool skip_concurrency_ticket() const
Definition: row0mysql.cc:4770
void try_unlock(bool has_latches_on_recs)
This is an no-op unless trx is using a READ COMMITTED or READ UNCOMMITTED isolation level.
Definition: row0mysql.cc:2485
ulint fetch_direction
ROW_SEL_NEXT or ROW_SEL_PREV.
Definition: row0mysql.h:718
ulint n_rows_fetched
number of rows fetched after positioning the current cursor
Definition: row0mysql.h:715
bool allow_duplicates()
Determines if the query is REPLACE or ON DUPLICATE KEY UPDATE in which case duplicate values should b...
Definition: row0mysql.h:865
ulint mysql_row_len
length in bytes of a row in the MySQL format
Definition: row0mysql.h:712
byte * srch_key_val1
buffer used in converting search key values from MySQL format to InnoDB format.
Definition: row0mysql.h:809
unsigned need_to_access_clustered
if we are fetching columns through a secondary index and at least one column is not in the secondary ...
Definition: row0mysql.h:559
que_fork_t * upd_graph
Innobase SQL query graph used in updates or deletes.
Definition: row0mysql.h:624
dtuple_t * m_stop_tuple
prebuilt dtuple used in selects where the end of range is known
Definition: row0mysql.h:635
bool m_stop_tuple_found
Set to true in row_search_mvcc when a row matching exactly the length and value of stop_tuple was fou...
Definition: row0mysql.h:643
byte * fetch_cache[MYSQL_FETCH_CACHE_SIZE]
a cache for fetched rows if we fetch many rows from the same cursor: it saves CPU time to fetch them ...
Definition: row0mysql.h:720
dberr_t autoinc_error
The actual error code encountered while trying to init or read the autoinc value from the table.
Definition: row0mysql.h:780
bool idx_cond
True if index condition pushdown is used, false otherwise.
Definition: row0mysql.h:786
byte * ins_upd_rec_buff
buffer for storing data converted to the Innobase format from the MySQL format
Definition: row0mysql.h:602
trx_t * trx
current transaction handle
Definition: row0mysql.h:523
unsigned read_just_key
set to 1 when MySQL calls ha_innobase::extra with the argument HA_EXTRA_KEYREAD; it is enough to read...
Definition: row0mysql.h:537
row_prebuilt_t & operator=(row_prebuilt_t &&)=delete
bool m_temp_read_shared
Whether this is a temporary(intrinsic) table read to keep the position for this MySQL TABLE object.
Definition: row0mysql.h:830
byte row_id[DATA_ROW_ID_LEN]
if the clustered index was generated, the row id of the last row fetched is stored here
Definition: row0mysql.h:666
TABLE * m_mysql_table
The MySQL table object.
Definition: row0mysql.h:837
const rec_t * innodb_api_rec
InnoDB API search result.
Definition: row0mysql.h:793
void init_search_tuples_types()
Initializes search_tuple and m_stop_tuple shape so they match the index.
Definition: row0mysql.h:895
unsigned clust_index_was_generated
if the user did not define a primary key in MySQL, then Innobase automatically generated a clustered ...
Definition: row0mysql.h:528
unsigned index_usable
caches the value of index->is_usable(trx)
Definition: row0mysql.h:535
void * innodb_api_buf
Buffer holding copy of the physical Innodb API search record.
Definition: row0mysql.h:794
row_is_reading_range_guard_t get_is_reading_range_guard()
Definition: row0mysql.h:658
void init_tuple_types(dtuple_t *tuple)
A helper function for init_search_tuples_types() which prepares the shape of the tuple to match the i...
Definition: row0mysql.h:885
bool can_prefetch_records() const
Can a record buffer or a prefetch cache be utilized for prefetching records in this scan?
Definition: row0mysql.cc:4755
rtr_info_t * rtr_info
R-tree Search Info.
Definition: row0mysql.h:800
ulint fetch_cache_first
position of the first not yet fetched row in fetch_cache
Definition: row0mysql.h:730
bool m_end_range
True if exceeded the end_range while filling the prefetch cache.
Definition: row0mysql.h:846
enum select_mode select_mode
SELECT_ORDINARY, SELECT_SKIP_LOKCED, or SELECT_NO_WAIT.
Definition: row0mysql.h:680
dtuple_t * clust_ref
prebuilt dtuple used in sel/upd/del
Definition: row0mysql.h:677
void clear_search_tuples()
Resets both search_tuple and m_stop_tuple.
Definition: row0mysql.h:901
ulint magic_n
this magic number is set to ROW_PREBUILT_ALLOCATED when created, or ROW_PREBUILT_FREED when the struc...
Definition: row0mysql.h:516
que_fork_t * ins_graph
Innobase SQL query graph used in inserts.
Definition: row0mysql.h:621
ulonglong autoinc_last_value
last value of AUTO-INC interval
Definition: row0mysql.h:771
uint srch_key_val_len
Size of search key.
Definition: row0mysql.h:815
bool fts_doc_id_in_read_set
true if table has externally defined FTS_DOC_ID coulmn.
Definition: row0mysql.h:768
mem_heap_t * heap
memory heap from which these auxiliary structures are allocated when needed
Definition: row0mysql.h:592
unsigned template_type
ROW_MYSQL_WHOLE_ROW, ROW_MYSQL_REC_FIELDS, ROW_MYSQL_DUMMY_TEMPLATE, or ROW_MYSQL_NO_TEMPLATE.
Definition: row0mysql.h:550
dict_index_t * index
current index for a search, if any
Definition: row0mysql.h:521
que_fork_t * sel_graph
dummy query graph used in selects
Definition: row0mysql.h:630
ulint magic_n2
this should be the same as magic_n
Definition: row0mysql.h:803
Vectors holding the matching internal pages/nodes and leaf records.
Definition: gis0type.h:109
Transaction savepoint.
Definition: trx0types.h:148
Definition: trx0trx.h:684
Definition: row0upd.h:701
Definition: row0upd.h:565
Transaction system global type definitions.
ib_id_t trx_id_t
Transaction identifier (DB_TRX_ID, DATA_TRX_ID)
Definition: trx0types.h:138
Version control for database, common definitions, and include files.
unsigned long int ulint
Definition: univ.i:406
The ut_bool_scope_guard class which sets boolean to true for the duration of scope.
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:105