![]() |
MySQL 8.0.43
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.