MySQL 8.0.40
Source Code Documentation
|
The tree cursor: the definition appears here only for the compiler to know struct size! More...
#include <btr0cur.h>
Public Attributes | |
dict_index_t * | index {nullptr} |
Index on which the cursor is positioned. More... | |
page_cur_t | page_cur |
Page cursor. More... | |
purge_node_t * | purge_node {nullptr} |
Purge node, for BTR_DELETE. More... | |
buf_block_t * | left_block {nullptr} |
this field is used to store a pointer to the left neighbor page, in the cases BTR_SEARCH_PREV and BTR_MODIFY_PREV More... | |
que_thr_t * | thr {nullptr} |
this field is only used when btr_cur_search_to_nth_level is called for an index entry insertion: the calling query thread is passed here to be used in the insert buffer More... | |
btr_path_t * | path_arr {nullptr} |
In estimating the number of rows in range, we store in this array information of the path through the tree. More... | |
rtr_info_t * | rtr_info {nullptr} |
rtree search info. More... | |
bool | m_own_rtr_info = true |
Ownership of the above rtr_info member. More... | |
Page_fetch | m_fetch_mode {Page_fetch::NORMAL} |
If cursor is used in a scan or simple page fetch. More... | |
btr_search_prefix_info_t | prefix_info {} |
AHI prefix used in a hash search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED. More... | |
uint64_t | ahi_hash_value {0} |
hash value used in the search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED. More... | |
btr_cur_method | flag {BTR_CUR_UNSET} |
The following fields are used in btr_cur_search_to_nth_level to pass information: More... | |
ulint | tree_height {0} |
Tree height if the search is done for a pessimistic insert or update operation. More... | |
ulint | up_match {0} |
If the search mode was PAGE_CUR_LE, the number of matched fields to the the first user record to the right of the cursor record after btr_cur_search_to_nth_level; for the mode PAGE_CUR_GE, the matched fields to the first user record AT THE CURSOR or to the right of it; NOTE that the up_match and low_match values may exceed the correct values for comparison to the adjacent user record if that record is on a different leaf page! See the note in row_ins_duplicate_error_in_clust. More... | |
ulint | up_bytes {0} |
Number of matched bytes to the right at the time cursor positioned; only used internally in searches: not defined after the search. More... | |
ulint | low_match {0} |
If search mode was PAGE_CUR_LE, the number of matched fields to the first user record AT THE CURSOR or to the left of it after btr_cur_search_to_nth_level; NOT defined for PAGE_CUR_GE or any other search modes; see also the NOTE in up_match! More... | |
ulint | low_bytes {0} |
Number of matched bytes to the left at the time cursor positioned; only used internally in searches: not defined after the search. More... | |
struct { | |
btr_search_prefix_info_t prefix_info {} | |
AHI prefix used in a hash search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED. More... | |
uint64_t ahi_hash_value {0} | |
hash value used in the search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED. More... | |
} | ahi |
The tree cursor: the definition appears here only for the compiler to know struct size!
struct { ... } btr_cur_t::ahi |
uint64_t btr_cur_t::ahi_hash_value {0} |
hash value used in the search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED.
btr_cur_method btr_cur_t::flag {BTR_CUR_UNSET} |
The following fields are used in btr_cur_search_to_nth_level to pass information:
Search method used.
dict_index_t* btr_cur_t::index {nullptr} |
Index on which the cursor is positioned.
buf_block_t* btr_cur_t::left_block {nullptr} |
this field is used to store a pointer to the left neighbor page, in the cases BTR_SEARCH_PREV and BTR_MODIFY_PREV
ulint btr_cur_t::low_bytes {0} |
Number of matched bytes to the left at the time cursor positioned; only used internally in searches: not defined after the search.
ulint btr_cur_t::low_match {0} |
If search mode was PAGE_CUR_LE, the number of matched fields to the first user record AT THE CURSOR or to the left of it after btr_cur_search_to_nth_level; NOT defined for PAGE_CUR_GE or any other search modes; see also the NOTE in up_match!
Page_fetch btr_cur_t::m_fetch_mode {Page_fetch::NORMAL} |
If cursor is used in a scan or simple page fetch.
bool btr_cur_t::m_own_rtr_info = true |
Ownership of the above rtr_info member.
page_cur_t btr_cur_t::page_cur |
Page cursor.
btr_path_t* btr_cur_t::path_arr {nullptr} |
In estimating the number of rows in range, we store in this array information of the path through the tree.
btr_search_prefix_info_t btr_cur_t::prefix_info {} |
AHI prefix used in a hash search if flag is any of BTR_CUR_HASH, BTR_CUR_HASH_FAIL or BTR_CUR_HASH_NOT_ATTEMPTED.
The cursor does not fill nor use the left_side
member and comparisons to other instances should be done with equals_without_left_side(). Ideally we could have a separate class without this field that btr_search_prefix_info_t inherits or composes from, but this would make it larger than 64bits, at least on VC++, even if we inherit from a third (empty) class making all these types non-POD, and thus unable to do lock-free atomic operations.
purge_node_t* btr_cur_t::purge_node {nullptr} |
Purge node, for BTR_DELETE.
rtr_info_t* btr_cur_t::rtr_info {nullptr} |
rtree search info.
this field is only used when btr_cur_search_to_nth_level is called for an index entry insertion: the calling query thread is passed here to be used in the insert buffer
ulint btr_cur_t::tree_height {0} |
Tree height if the search is done for a pessimistic insert or update operation.
ulint btr_cur_t::up_bytes {0} |
Number of matched bytes to the right at the time cursor positioned; only used internally in searches: not defined after the search.
ulint btr_cur_t::up_match {0} |
If the search mode was PAGE_CUR_LE, the number of matched fields to the the first user record to the right of the cursor record after btr_cur_search_to_nth_level; for the mode PAGE_CUR_GE, the matched fields to the first user record AT THE CURSOR or to the right of it; NOTE that the up_match and low_match values may exceed the correct values for comparison to the adjacent user record if that record is on a different leaf page! See the note in row_ins_duplicate_error_in_clust.