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:48
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:4583
Definition: sess0sess.h:71
Definition: row0mysql.h:654
row_is_reading_range_guard_t(row_prebuilt_t &prebuilt)
Definition: row0mysql.h:656
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:97
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:2887
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:47
lock_mode
Definition: lock0types.h:54
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:990
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:23828
constexpr uint32_t ROW_PREBUILT_ALLOCATED
Definition: row0mysql.h:509
constexpr uint32_t ROW_READ_WITH_LOCKS
Definition: row0mysql.h:999
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:986
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:995
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:23881
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:992
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:9262
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:988
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:1001
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:23839
constexpr uint32_t ROW_RETRIEVE_ALL_COLS
Definition: row0mysql.h:996
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:989
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:1000
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:23794
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:3210
Callback for row_mysql_sys_index_iterate()
Definition: row0mysql.h:925
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:617
Data structure for a field in an index.
Definition: dict0mem.h:890
Data structure for a foreign key constraint; an example: FOREIGN KEY (A, B) REFERENCES TABLE2 (C,...
Definition: dict0mem.h:1661
Data structure for an index.
Definition: dict0mem.h:1041
unsigned n_fields
number of fields in the index
Definition: dict0mem.h:1101
Data structure for a database table.
Definition: dict0mem.h:1904
space_id_t space
Space where the clustered index of the table is placed.
Definition: dict0mem.h:1992
Data structure for a virtual column in a table.
Definition: dict0mem.h:810
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:696
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:828
trx_id_t trx_id
The table->def_trx_id when ins_graph was built.
Definition: row0mysql.h:621
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:545
byte * srch_key_val2
buffer used in converting search key values from MySQL format to InnoDB format.
Definition: row0mysql.h:814
upd_node_t * upd_node
Innobase SQL update node used to perform updates and deletes.
Definition: row0mysql.h:619
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:526
row_prebuilt_t(row_prebuilt_t &&)=delete
innodb_session_t * session
InnoDB session handler.
Definition: row0mysql.h:810
multi_value_data * mv_data
Definition: row0mysql.h:607
dict_table_t * table
Innobase table handle.
Definition: row0mysql.h:522
const byte * default_rec
the default values of all columns (a "default row") in MySQL format
Definition: row0mysql.h:608
ulonglong m_fts_limit
limit value to avoid fts result overflow
Definition: row0mysql.h:845
void lob_undo_reset()
Definition: row0mysql.h:855
unsigned replace
1 if extra(HA_EXTRA_WRITE_CAN_REPLACE) was requested, which happen when REPLACE is done instead of re...
Definition: row0mysql.h:586
size_t new_rec_locks_count() const
Counts how many elements of.
Definition: row0mysql.h:894
dtuple_t * search_tuple
prebuilt dtuple used in selects
Definition: row0mysql.h:634
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:610
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:590
ulint mysql_prefix_len
byte offset of the end of the last requested column
Definition: row0mysql.h:711
doc_id_t fts_doc_id
Definition: row0mysql.h:673
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:765
ulint select_lock_type
LOCK_NONE, LOCK_S, or LOCK_X.
Definition: row0mysql.h:681
bool no_autoinc_locking
true, if we were asked to skip AUTOINC locking for the table.
Definition: row0mysql.h:825
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:779
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:798
unsigned innodb_api
whether this is a InnoDB API query
Definition: row0mysql.h:793
btr_pcur_t * clust_pcur
persistent cursor used in some selects and updates
Definition: row0mysql.h:630
unsigned templ_contains_fixed_point
true if the template contains a column with DATA_POINT.
Definition: row0mysql.h:573
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:558
bool ins_sel_stmt
if true then ins_sel_statement.
Definition: row0mysql.h:808
@ LOCK_PCUR
Definition: row0mysql.h:741
@ LOCK_COUNT
Definition: row0mysql.h:743
@ LOCK_CLUST_PCUR
Definition: row0mysql.h:742
mem_heap_t * blob_heap
in SELECTS BLOB fields are copied to this heap
Definition: row0mysql.h:736
bool m_is_reading_range
Set to true iff we are inside read_range_first() or read_range_next()
Definition: row0mysql.h:649
ins_node_t * ins_node
Innobase SQL insert node used to perform inserts to the table.
Definition: row0mysql.h:600
bool m_no_prefetch
Disable prefetch.
Definition: row0mysql.h:819
unsigned n_template
number of elements in the template
Definition: row0mysql.h:556
bool m_temp_tree_modified
Whether tree modifying operation happened on a temporary (intrinsic) table index tree.
Definition: row0mysql.h:836
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:582
btr_pcur_t * pcur
persistent cursor used in selects and updates
Definition: row0mysql.h:628
ulint n_fetch_cached
number of not yet fetched rows in fetch_cache
Definition: row0mysql.h:734
std::bitset< LOCK_COUNT > new_rec_lock
normally false; if session is using READ COMMITTED or READ UNCOMMITTED isolation level,...
Definition: row0mysql.h:764
lob::undo_vers_t * get_lob_undo()
Definition: row0mysql.h:853
mem_heap_t * cursor_heap
memory heap from which innodb_api_buf is allocated per session
Definition: row0mysql.h:597
ulonglong autoinc_increment
The increment step of the auto increment column.
Definition: row0mysql.h:775
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:566
ulint idx_cond_n_cols
Number of fields in idx_cond_cols.
Definition: row0mysql.h:790
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:684
lob::undo_vers_t m_lob_undo
Undo information for LOB mvcc.
Definition: row0mysql.h:851
ha_innobase * m_mysql_handler
The MySQL handler object.
Definition: row0mysql.h:842
bool in_fts_query
Whether we are in a FTS query.
Definition: row0mysql.h:769
bool no_read_locking
true, if server has called ha_extra(HA_EXTRA_NO_READ_LOCKING)
Definition: row0mysql.h:822
mem_heap_t * old_vers_heap
memory heap where a previous version is built in consistent read
Definition: row0mysql.h:738
bool is_reading_range() const
Definition: row0mysql.h:652
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:720
ulint n_rows_fetched
number of rows fetched after positioning the current cursor
Definition: row0mysql.h:717
bool allow_duplicates()
Determines if the query is REPLACE or ON DUPLICATE KEY UPDATE in which case duplicate values should b...
Definition: row0mysql.h:867
ulint mysql_row_len
length in bytes of a row in the MySQL format
Definition: row0mysql.h:714
byte * srch_key_val1
buffer used in converting search key values from MySQL format to InnoDB format.
Definition: row0mysql.h:811
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:561
que_fork_t * upd_graph
Innobase SQL query graph used in updates or deletes.
Definition: row0mysql.h:626
dtuple_t * m_stop_tuple
prebuilt dtuple used in selects where the end of range is known
Definition: row0mysql.h:637
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:645
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:722
dberr_t autoinc_error
The actual error code encountered while trying to init or read the autoinc value from the table.
Definition: row0mysql.h:782
bool idx_cond
True if index condition pushdown is used, false otherwise.
Definition: row0mysql.h:788
byte * ins_upd_rec_buff
buffer for storing data converted to the Innobase format from the MySQL format
Definition: row0mysql.h:604
trx_t * trx
current transaction handle
Definition: row0mysql.h:525
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:539
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:832
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:668
TABLE * m_mysql_table
The MySQL table object.
Definition: row0mysql.h:839
const rec_t * innodb_api_rec
InnoDB API search result.
Definition: row0mysql.h:795
space_id_t space_id() const
Definition: row0mysql.h:520
void init_search_tuples_types()
Initializes search_tuple and m_stop_tuple shape so they match the index.
Definition: row0mysql.h:897
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:530
unsigned index_usable
caches the value of index->is_usable(trx)
Definition: row0mysql.h:537
void * innodb_api_buf
Buffer holding copy of the physical Innodb API search record.
Definition: row0mysql.h:796
row_is_reading_range_guard_t get_is_reading_range_guard()
Definition: row0mysql.h:660
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:887
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:802
ulint fetch_cache_first
position of the first not yet fetched row in fetch_cache
Definition: row0mysql.h:732
bool m_end_range
True if exceeded the end_range while filling the prefetch cache.
Definition: row0mysql.h:848
enum select_mode select_mode
SELECT_ORDINARY, SELECT_SKIP_LOKCED, or SELECT_NO_WAIT.
Definition: row0mysql.h:682
dtuple_t * clust_ref
prebuilt dtuple used in sel/upd/del
Definition: row0mysql.h:679
void clear_search_tuples()
Resets both search_tuple and m_stop_tuple.
Definition: row0mysql.h:903
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:623
ulonglong autoinc_last_value
last value of AUTO-INC interval
Definition: row0mysql.h:773
uint srch_key_val_len
Size of search key.
Definition: row0mysql.h:817
bool fts_doc_id_in_read_set
true if table has externally defined FTS_DOC_ID coulmn.
Definition: row0mysql.h:770
mem_heap_t * heap
memory heap from which these auxiliary structures are allocated when needed
Definition: row0mysql.h:594
unsigned template_type
ROW_MYSQL_WHOLE_ROW, ROW_MYSQL_REC_FIELDS, ROW_MYSQL_DUMMY_TEMPLATE, or ROW_MYSQL_NO_TEMPLATE.
Definition: row0mysql.h:552
dict_index_t * index
current index for a search, if any
Definition: row0mysql.h:523
que_fork_t * sel_graph
dummy query graph used in selects
Definition: row0mysql.h:632
ulint magic_n2
this should be the same as magic_n
Definition: row0mysql.h:805
Vectors holding the matching internal pages/nodes and leaf records.
Definition: gis0type.h:109
Transaction savepoint.
Definition: trx0types.h:148
Definition: trx0trx.h:675
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