MySQL 8.4.0
Source Code Documentation
Multi_value_entry_builder_normal Class Reference

The subclass of the multi-value entry builder, for non-INSERT cases, With this class, there should be no need to build separate entries for different values in the same multi-value field. More...

#include <row0row.h>

Inheritance diagram for Multi_value_entry_builder_normal:
[legend]

Public Member Functions

 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. More...
 
- Public Member Functions inherited from Multi_value_entry_builder
 Multi_value_entry_builder (dict_index_t *index, dtuple_t *entry, bool selected)
 Constructor. More...
 
virtual ~Multi_value_entry_builder ()=default
 
dtuple_tbegin (uint32_t pos=0)
 Get the first index entry. More...
 
dtuple_tnext ()
 Get next index entry based on next multi-value data. More...
 
uint32_t last_multi_value_position () const
 Get the position of last generated multi-value data. More...
 

Private Member Functions

dfield_tfind_multi_value_field () override
 Find the multi-value field from the passed in entry or row. More...
 
void prepare_entry_if_necessary () override
 Prepare the entry when the entry is not passed in. More...
 
uint32_t skip () override
 Skip the not selected values and stop m_pos at the next selected one. More...
 

Private Attributes

const dtuple_tm_row
 Based on which complete row to build the index row. More...
 
const row_ext_tm_ext
 Externally stored column prefixes, or nullptr. More...
 
mem_heap_tm_heap
 Memory heap. More...
 
const bool m_check
 True if dfield type should be checked, otherwise false. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Multi_value_entry_builder
virtual bool prepare_multi_value_field ()
 Prepare the corresponding multi-value field from the row. More...
 
- Protected Attributes inherited from Multi_value_entry_builder
dict_index_tm_index
 Based on which index to build the entry. More...
 
const bool m_selected
 True if only the selected(bitmap set) multi-value data would be used to build the entries, otherwise false. More...
 
dtuple_tm_entry
 Entry built for the index. More...
 
uint32_t m_pos
 Multi-value data position. More...
 
const multi_value_datam_mv_data
 Multi-value data. More...
 
uint32_t m_mv_field_no
 Field number of multi-value data on the index. More...
 

Detailed Description

The subclass of the multi-value entry builder, for non-INSERT cases, With this class, there should be no need to build separate entries for different values in the same multi-value field.

Constructor & Destructor Documentation

◆ Multi_value_entry_builder_normal()

Multi_value_entry_builder_normal::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 
)
inline

Constructor.

Parameters
[in]rowbased on which complete row to build the index row
[in]extexternally stored column prefixes of the row
[in,out]indexmulti-value index
[in,out]heapmemory heap
[in]checktrue if type can be checked, otherwise skip checking
[in]selectedtrue if only the selected(bitmap set) multi-value data would be used to build the entries, otherwise false.

Member Function Documentation

◆ find_multi_value_field()

dfield_t * Multi_value_entry_builder_normal::find_multi_value_field ( )
overrideprivatevirtual

Find the multi-value field from the passed in entry or row.

m_mv_field_no should be set once the multi-value field found.

Returns
the multi-value field pointer, or nullptr if not found

Implements Multi_value_entry_builder.

◆ prepare_entry_if_necessary()

void Multi_value_entry_builder_normal::prepare_entry_if_necessary ( )
inlineoverrideprivatevirtual

Prepare the entry when the entry is not passed in.

Reimplemented from Multi_value_entry_builder.

◆ skip()

uint32_t Multi_value_entry_builder_normal::skip ( )
inlineoverrideprivatevirtual

Skip the not selected values and stop m_pos at the next selected one.

Returns
the next valid value position, or size of m_mv_data to indicate there is no more valid value

Reimplemented from Multi_value_entry_builder.

Member Data Documentation

◆ m_check

const bool Multi_value_entry_builder_normal::m_check
private

True if dfield type should be checked, otherwise false.

◆ m_ext

const row_ext_t* Multi_value_entry_builder_normal::m_ext
private

Externally stored column prefixes, or nullptr.

◆ m_heap

mem_heap_t* Multi_value_entry_builder_normal::m_heap
private

Memory heap.

◆ m_row

const dtuple_t* Multi_value_entry_builder_normal::m_row
private

Based on which complete row to build the index row.


The documentation for this class was generated from the following files: