168 const ulint *offsets,
177 const ulint *offsets,
220 const ulint *offsets);
459 bool check,
bool selected)
The index tree general types.
bool test(size_t pos) const
Test if the specified bit is set or not.
Definition: ut0bitset.h:82
The subclass of the multi-value row builder, for INSERT cases.
Definition: row0row.h:518
dfield_t * find_multi_value_field() override
Find the multi-value field from the passed entry in or row.
Definition: row0row.h:530
Multi_value_entry_builder_insert(dict_index_t *index, dtuple_t *entry)
Constructor.
Definition: row0row.h:523
The subclass of the multi-value entry builder, for non-INSERT cases, With this class,...
Definition: row0row.h:443
const row_ext_t * m_ext
Externally stored column prefixes, or nullptr.
Definition: row0row.h:506
dfield_t * find_multi_value_field() override
Find the multi-value field from the passed in entry or row.
Definition: row0row.cc:1150
const dtuple_t * m_row
Based on which complete row to build the index row.
Definition: row0row.h:503
void prepare_entry_if_necessary() override
Prepare the entry when the entry is not passed in.
Definition: row0row.h:473
mem_heap_t * m_heap
Memory heap.
Definition: row0row.h:509
uint32_t skip() override
Skip the not selected values and stop m_pos at the next selected one.
Definition: row0row.h:487
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:457
const bool m_check
True if dfield type should be checked, otherwise false.
Definition: row0row.h:512
Class to build a series of entries based on one multi-value field.
Definition: row0row.h:317
virtual dfield_t * find_multi_value_field()=0
Find the multi-value field from the passed in entry or row.
dtuple_t * begin(uint32_t pos=0)
Get the first index entry.
Definition: row0row.h:337
uint32_t last_multi_value_position() const
Get the position of last generated multi-value data.
Definition: row0row.h:374
const multi_value_data * m_mv_data
Multi-value data.
Definition: row0row.h:434
dtuple_t * m_entry
Entry built for the index.
Definition: row0row.h:428
const bool m_selected
True if only the selected(bitmap set) multi-value data would be used to build the entries,...
Definition: row0row.h:425
dtuple_t * next()
Get next index entry based on next multi-value data.
Definition: row0row.h:352
virtual ~Multi_value_entry_builder()=default
Multi_value_entry_builder(dict_index_t *index, dtuple_t *entry, bool selected)
Constructor.
Definition: row0row.h:320
dict_index_t * m_index
Based on which index to build the entry.
Definition: row0row.h:421
uint32_t m_pos
Multi-value data position.
Definition: row0row.h:431
virtual bool prepare_multi_value_field()
Prepare the corresponding multi-value field from the row.
Definition: row0row.h:388
virtual uint32_t skip()
Skip the not selected values and stop m_pos at the next selected one.
Definition: row0row.h:413
uint32_t m_mv_field_no
Field number of multi-value data on the index.
Definition: row0row.h:437
virtual void prepare_entry_if_necessary()
Prepare the entry when the entry is not passed in.
Definition: row0row.h:408
constexpr DWORD buf_size
Definition: create_def.cc:227
SQL data field and tuple.
static void dfield_set_data(dfield_t *field, const void *data, ulint len)
Sets pointer to the data and length in a field.
static dfield_t * dtuple_get_nth_field(const dtuple_t *tuple, ulint n)
Gets nth field of a tuple.
static bool dfield_is_multi_value(const dfield_t *field)
Determine if a field is of multi-value type.
static ulint dfield_is_null(const dfield_t *field)
Determines if a field is SQL NULL.
Data dictionary global types.
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
static int flag
Definition: hp_test1.cc:39
Definition: buf0block_hint.cc:29
PT & ref(PT *tp)
Definition: tablespace_impl.cc:358
Json_data_extension ext
Definition: backend.cc:50
mode
Definition: file_handle.h:59
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2890
Query graph global types.
Record manager global types.
byte rec_t
Definition: rem0types.h:40
required string type
Definition: replication_group_member_actions.proto:33
static 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...
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:654
static 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.
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:548
constexpr uint32_t ROW_BUILD_NORMAL
build index row
Definition: row0row.h:70
bool 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:828
constexpr uint32_t ROW_BUILD_FOR_INSERT
build row for insert.
Definition: row0row.h:76
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:562
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.
Definition: row0row.ic:148
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:1081
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:620
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:517
constexpr uint32_t ROW_COPY_POINTERS
Definition: row0row.h:292
static 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.
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:58
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:906
void row_build_row_ref_in_tuple(dtuple_t *ref, const rec_t *rec, const dict_index_t *index, ulint *offsets)
Builds from a secondary index record a row reference with which we can search the clustered index rec...
Definition: row0row.cc:753
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:865
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:932
constexpr uint32_t ROW_BUILD_FOR_PURGE
build row for purge.
Definition: row0row.h:72
row_search_result
Result of row_search_index_entry.
Definition: row0row.h:269
@ ROW_NOT_DELETED_REF
BTR_DELETE was specified, and row_purge_poss_sec() failed.
Definition: row0row.h:277
@ ROW_NOT_FOUND
record not found
Definition: row0row.h:271
@ ROW_FOUND
the record was found
Definition: row0row.h:270
@ ROW_BUFFERED
one of BTR_INSERT, BTR_DELETE, or BTR_DELETE_MARK was specified, the secondary index leaf page was no...
Definition: row0row.h:272
static 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...
constexpr uint32_t ROW_BUILD_FOR_UNDO
build row for undo.
Definition: row0row.h:74
uint64_t row_get_autoinc_counter(const dtuple_t *row, ulint n)
Read the autoinc counter from the clustered index row.
Definition: row0row.cc:924
constexpr uint32_t ROW_COPY_DATA
Definition: row0row.h:291
static 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.
Row operation global types.
Definition: completion_hash.h:34
Definition: btr0pcur.h:98
Structure for an SQL data field.
Definition: data0data.h:604
unsigned len
data length; UNIV_SQL_NULL if SQL null
Definition: data0data.h:610
void * data
pointer to data
Definition: data0data.h:605
Data structure for newly added virtual column in a table.
Definition: dict0mem.h:834
Data structure for a field in an index.
Definition: dict0mem.h:894
Data structure for an index.
Definition: dict0mem.h:1045
Data structure for a database table.
Definition: dict0mem.h:1908
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:681
uint16_t n_fields
Number of fields in dtuple.
Definition: data0data.h:687
dfield_t * fields
Fields.
Definition: data0data.h:695
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:301
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:181
Structure to hold number of multiple values.
Definition: data0data.h:383
const void ** datap
points to different value
Definition: data0data.h:386
uint32_t num_v
number of values
Definition: data0data.h:395
Bitset * bitset
Bitset to indicate which data should be handled for current data array.
Definition: data0data.h:407
uint32_t * data_len
each individual value length
Definition: data0data.h:389
Prefixes of externally stored columns.
Definition: row0ext.h:94
Transaction system global type definitions.
ib_id_t trx_id_t
Transaction identifier (DB_TRX_ID, DATA_TRX_ID)
Definition: trx0types.h:137
ib_id_t roll_ptr_t
Rollback pointer (DB_ROLL_PTR, DATA_ROLL_PTR)
Definition: trx0types.h:139
Version control for database, common definitions, and include files.
constexpr auto UNIV_NO_INDEX_VALUE
The following number as the length of a logical field means that no attribute value for the multi-val...
Definition: univ.i:471
unsigned long int ulint
Definition: univ.i:407
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:68
int n
Definition: xcom_base.cc:508