 |
MySQL
8.0.23
Source Code Documentation
|
Go to the documentation of this file.
53 MY_ATTRIBUTE((warn_unused_result));
61 MY_ATTRIBUTE((warn_unused_result));
69 MY_ATTRIBUTE((warn_unused_result));
72 #define ROW_BUILD_NORMAL 0
73 #define ROW_BUILD_FOR_PURGE 1
74 #define ROW_BUILD_FOR_UNDO 2
75 #define ROW_BUILD_FOR_INSERT 3
93 MY_ATTRIBUTE((warn_unused_result));
109 MY_ATTRIBUTE((warn_unused_result));
130 const ulint *offsets,
145 const ulint *col_map,
177 const rec_t *rec,
const ulint *offsets,
190 const ulint *offsets,
193 MY_ATTRIBUTE((warn_unused_result));
200 const ulint *offsets,
203 MY_ATTRIBUTE((warn_unused_result));
222 MY_ATTRIBUTE((warn_unused_result));
247 const ulint *offsets);
258 MY_ATTRIBUTE((warn_unused_result));
268 MY_ATTRIBUTE((warn_unused_result));
318 MY_ATTRIBUTE((warn_unused_result));
320 #define ROW_COPY_DATA 1
321 #define ROW_COPY_POINTERS 2
342 MY_ATTRIBUTE((warn_unused_result));
420 if (field ==
nullptr || field->
len == UNIV_NO_INDEX_VALUE) {
488 bool check,
bool selected)
580 #include "row0row.ic"
virtual void prepare_entry_if_necessary()
Prepare the entry when the entry is not passed in.
Definition: row0row.h:437
ib_id_t roll_ptr_t
Rollback pointer (DB_ROLL_PTR, DATA_ROLL_PTR)
Definition: trx0types.h:146
dtuple_t * row_build_index_entry_low(const dtuple_t *row, const row_ext_t *ext, const dict_index_t *index, mem_heap_t *heap, ulint flag)
When an insert or purge to a table is performed, this function builds the entry to be inserted into o...
Definition: row0row.cc:63
void * data
pointer to data
Definition: data0data.h:640
dtuple_t * begin(uint32_t pos=0)
Get the first index entry.
Definition: row0row.h:366
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:711
Definition: btr0pcur.h:178
rec_t * row_get_clust_rec(ulint mode, const rec_t *rec, const dict_index_t *index, dict_index_t **clust_index, mtr_t *mtr)
Fetches the clustered index record for a secondary index record.
Definition: row0row.cc:920
Multi_value_entry_builder_insert(dict_index_t *index, dtuple_t *entry)
Constructor.
Definition: row0row.h:552
ib_id_t trx_id_t
Transaction identifier (DB_TRX_ID, DATA_TRX_ID)
Definition: trx0types.h:144
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:66
dtuple_t * row_build_w_add_vcol(ulint type, const dict_index_t *index, const rec_t *rec, const ulint *offsets, const dict_table_t *col_table, const dtuple_t *add_cols, const dict_add_v_col_t *add_v, const ulint *col_map, row_ext_t **ext, mem_heap_t *heap)
An inverse function to row_build_index_entry.
Definition: row0row.cc:595
Dialog Client Authentication nullptr
Definition: dialog.cc:353
Data structure for an index.
Definition: dict0mem.h:879
dtuple_t * row_build(ulint type, const dict_index_t *index, const rec_t *rec, const ulint *offsets, const dict_table_t *col_table, const dtuple_t *add_cols, const ulint *col_map, row_ext_t **ext, mem_heap_t *heap)
An inverse function to row_build_index_entry.
Definition: row0row.cc:530
ib_uint64_t row_get_autoinc_counter(const dtuple_t *row, ulint n)
Read the autoinc counter from the clustered index row.
Definition: row0row.cc:980
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:169
UNIV_INLINE trx_id_t row_get_rec_trx_id(const rec_t *rec, const dict_index_t *index, const ulint *offsets)
Reads the trx id field from a clustered index record.
char * pos
Definition: do_ctype.cc:76
Prefixes of externally stored columns.
Definition: row0ext.h:100
uint32_t m_pos
Multi-value data position.
Definition: row0row.h:460
const row_ext_t * m_ext
Externally stored column prefixes, or nullptr.
Definition: row0row.h:535
Data structure for a database table.
Definition: dict0mem.h:1525
dfield_t * find_multi_value_field() override
Find the multi-value field from the passed in entry or row.
Definition: row0row.cc:1204
const bool m_check
True if dfield type should be checked, otherwise false.
Definition: row0row.h:541
Data structure for newly added virtual column in a table.
Definition: dict0mem.h:662
byte rec_t
Definition: rem0types.h:39
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:343
ib_uint64_t row_parse_int(const byte *data, ulint len, ulint mtype, bool unsigned_type)
Parse the integer data from specified data, which could be DATA_INT, DATA_FLOAT or DATA_DOUBLE.
int n
Definition: xcom_base.cc:445
The subclass of the multi-value entry builder, for non-INSERT cases, With this class,...
Definition: row0row.h:472
Multi_value_entry_builder_normal(const dtuple_t *row, const row_ext_t *ext, dict_index_t *index, mem_heap_t *heap, bool check, bool selected)
Constructor.
Definition: row0row.h:486
ibool row_search_on_row_ref(btr_pcur_t *pcur, ulint mode, dict_table_t *table, const dtuple_t *ref, mtr_t *mtr)
Searches the clustered index record for a row, if we have the row reference.
Definition: row0row.cc:883
const dtuple_t * m_row
Based on which complete row to build the index row.
Definition: row0row.h:532
UNIV_INLINE void dfield_set_data(dfield_t *field, const void *data, ulint len)
Sets pointer to the data and length in a field.
virtual ~Multi_value_entry_builder()
Definition: row0row.h:357
dfield_t * fields
Fields.
Definition: data0data.h:725
dtuple_t * m_entry
Entry built for the index.
Definition: row0row.h:457
Structure to hold number of multiple values.
Definition: data0data.h:418
Multi_value_entry_builder(dict_index_t *index, dtuple_t *entry, bool selected)
Constructor.
Definition: row0row.h:349
Data structure for a field in an index.
Definition: dict0mem.h:718
@ ROW_FOUND
the record was found
Definition: row0row.h:298
@ ROW_NOT_DELETED_REF
BTR_DELETE was specified, and row_purge_poss_sec() failed.
Definition: row0row.h:305
dtuple_t * next()
Get next index entry based on next multi-value data.
Definition: row0row.h:381
Class to build a series of entries based on one multi-value field.
Definition: row0row.h:346
virtual bool prepare_multi_value_field()
Prepare the corresponding multi-value field from the row.
Definition: row0row.h:417
@ ROW_BUFFERED
one of BTR_INSERT, BTR_DELETE, or BTR_DELETE_MARK was specified, the secondary index leaf page was no...
Definition: row0row.h:300
dtuple_t * row_rec_to_index_entry(const rec_t *rec, const dict_index_t *index, const ulint *offsets, mem_heap_t *heap)
Converts an index record to a typed data tuple.
Definition: row0row.cc:667
void row_build_row_ref_in_tuple(dtuple_t *ref, const rec_t *rec, const dict_index_t *index, ulint *offsets, trx_t *trx)
Builds from a secondary index record a row reference with which we can search the clustered index rec...
Definition: row0row.cc:808
ulint row_raw_format(const char *data, ulint data_len, const dict_field_t *dict_field, char *buf, ulint buf_size)
Formats the raw data in "data" (in InnoDB on-disk format) using "dict_field" and writes the result to...
Definition: row0row.cc:1135
const bool m_selected
True if only the selected(bitmap set) multi-value data would be used to build the entries,...
Definition: row0row.h:454
The subclass of the multi-value row builder, for INSERT cases.
Definition: row0row.h:547
row_search_result
Result of row_search_index_entry.
Definition: row0row.h:297
UNIV_INLINE ulint row_get_trx_id_offset(const dict_index_t *index, const ulint *offsets)
Gets the offset of the DB_TRX_ID field, in bytes relative to the origin of a clustered index record.
UNIV_INLINE ulint dfield_is_null(const dfield_t *field)
Determines if a field is SQL NULL.
unsigned len
data length; UNIV_SQL_NULL if SQL null
Definition: data0data.h:645
UNIV_INLINE void row_build_row_ref_fast(dtuple_t *ref, const ulint *map, const rec_t *rec, const ulint *offsets)
Builds from a secondary index record a row reference with which we can search the clustered index rec...
dfield_t * find_multi_value_field() override
Find the multi-value field from the passed entry in or row.
Definition: row0row.h:559
#define ROW_BUILD_FOR_PURGE
build row for purge.
Definition: row0row.h:73
const multi_value_data * m_mv_data
Multi-value data.
Definition: row0row.h:463
@ ROW_NOT_FOUND
record not found
Definition: row0row.h:299
Definition: buf0block_hint.cc:29
dtuple_t * row_rec_to_index_entry_low(const rec_t *rec, const dict_index_t *index, const ulint *offsets, mem_heap_t *heap)
Converts an index record to a typed data tuple.
Definition: row0row.cc:609
uint32_t num_v
number of values
Definition: data0data.h:430
UNIV_INLINE dfield_t * dtuple_get_nth_field(const dtuple_t *tuple, ulint n)
Gets nth field of a tuple.
UNIV_INLINE dtuple_t * row_build_index_entry(const dtuple_t *row, const row_ext_t *ext, const dict_index_t *index, mem_heap_t *heap)
When an insert or purge to a table is performed, this function builds the entry to be inserted into o...
Bitset * bitset
Bitset to indicate which data should be handled for current data array.
Definition: data0data.h:442
Definition: completion_hash.h:34
dict_index_t * m_index
Based on which index to build the entry.
Definition: row0row.h:450
uint32_t skip() override
Skip the not selected values and stop m_pos at the next selected one.
Definition: row0row.h:516
void prepare_entry_if_necessary() override
Prepare the entry when the entry is not passed in.
Definition: row0row.h:502
bool test(size_t pos) const
Test if the specified bit is set or not.
Definition: ut0bitset.h:82
constexpr DWORD buf_size
Definition: create_def.cc:223
virtual uint32_t skip()
Skip the not selected values and stop m_pos at the next selected one.
Definition: row0row.h:442
uint32_t last_multi_value_position() const
Get the position of last generated multi-value data.
Definition: row0row.h:403
uint32_t * data_len
each individual value length
Definition: data0data.h:424
enum row_search_result row_search_index_entry(dict_index_t *index, const dtuple_t *entry, ulint mode, btr_pcur_t *pcur, mtr_t *mtr)
Searches an index record.
Definition: row0row.cc:988
UNIV_INLINE bool dfield_is_multi_value(const dfield_t *field)
Determine if a field is of multi-value type.
ib_uint64_t row_parse_int_from_field(const dfield_t *field)
Parse the integer data from specified field, which could be DATA_INT, DATA_FLOAT or DATA_DOUBLE.
Definition: row0row.cc:962
Structure for an SQL data field.
Definition: data0data.h:639
mem_heap_t * m_heap
Memory heap.
Definition: row0row.h:538
uint32_t m_mv_field_no
Field number of multi-value data on the index.
Definition: row0row.h:466
virtual dfield_t * find_multi_value_field()=0
Find the multi-value field from the passed in entry or row.
UNIV_INLINE roll_ptr_t row_get_rec_roll_ptr(const rec_t *rec, const dict_index_t *index, const ulint *offsets)
Reads the roll pointer field from a clustered index record.
type
Definition: base.h:36
ulint n_fields
Number of fields in dtuple.
Definition: data0data.h:717
mode
Definition: file_handle.h:59
Definition: trx0trx.h:836
static int flag
Definition: hp_test1.cc:39
const void ** datap
points to different value
Definition: data0data.h:421
dtuple_t * row_build_row_ref(ulint type, const dict_index_t *index, const rec_t *rec, mem_heap_t *heap)
Builds from a secondary index record a row reference with which we can search the clustered index rec...
Definition: row0row.cc:701
#define false
Definition: config_static.h:43