![]() |
MySQL 9.2.0
Source Code Documentation
|
Persistent cursor wrapper around btr_pcur_t. More...
Public Member Functions | |
PCursor (btr_pcur_t *pcur, mtr_t *mtr, size_t read_level) | |
Constructor. More... | |
void | save_current_user_record_as_last_processed () noexcept |
Store the position of the user record that is added to the key buffer and, commit the mini-transaction. More... | |
void | restore_to_last_processed_user_record () noexcept |
Restore the cursor to the saved record. More... | |
void | save_previous_user_record_as_last_processed () noexcept |
This method must be called after all records on a page are processed and cursor is positioned at supremum. More... | |
void | restore_to_first_unprocessed () noexcept |
Restore the cursor to the record which comes next after the saved position by the paired method save_previous_user_record_as_last_processed(). More... | |
dberr_t | move_to_next_block (dict_index_t *index) |
Move to the next block. More... | |
void | restore_position () noexcept |
Restore the cursor position. More... | |
page_cur_t * | get_page_cursor () noexcept |
bool | is_after_last_on_page () const noexcept |
size_t | read_level () const noexcept |
Private Member Functions | |
void | savepoint () noexcept |
Create a savepoint and commit the mini-transaction. More... | |
void | resume () noexcept |
Resume from savepoint. More... | |
dberr_t | restore_from_savepoint () noexcept |
Restore from a saved position. More... | |
dberr_t | move_to_user_rec () noexcept |
Move to the first user rec on the restored page. More... | |
Private Attributes | |
mtr_t * | m_mtr {} |
Mini-transaction. More... | |
btr_pcur_t * | m_pcur {} |
Persistent cursor. More... | |
size_t | m_read_level {} |
Level where the cursor is positioned or need to be positioned in case of restore. More... | |
Persistent cursor wrapper around btr_pcur_t.
|
inline |
Constructor.
[in,out] | pcur | Persistent cursor in use. |
[in] | mtr | Mini-transaction used by the persistent cursor. |
[in] | read_level | Read level where the block should be present. |
|
inlinenoexcept |
|
inlinenoexcept |
dberr_t PCursor::move_to_next_block | ( | dict_index_t * | index | ) |
Move to the next block.
[in] | index | Index being traversed. |
|
privatenoexcept |
Move to the first user rec on the restored page.
|
inlinenoexcept |
|
privatenoexcept |
Restore from a saved position.
|
inlinenoexcept |
Restore the cursor position.
|
noexcept |
Restore the cursor to the record which comes next after the saved position by the paired method save_previous_user_record_as_last_processed().
If there is no such record, it will restore to supremum on the last leaf page.
|
noexcept |
Restore the cursor to the saved record.
If the saved record was physically removed then restore to the largest record which is smaller than the saved record. If all records were removed then restore the cursor to the infimum; this must be fine if the next step of the caller is to advance the cursor.
|
privatenoexcept |
Resume from savepoint.
|
noexcept |
Store the position of the user record that is added to the key buffer and, commit the mini-transaction.
The cursor must not be positioned at infimum or supremum.
|
noexcept |
This method must be called after all records on a page are processed and cursor is positioned at supremum.
Under this assumption, it stores the position BTR_PCUR_AFTER the last user record on the page. This method must be paired with restore_to_first_unprocessed() to restore to a record which comes right after the value of the stored last processed record
|
privatenoexcept |
Create a savepoint and commit the mini-transaction.
|
private |
Mini-transaction.
|
private |
Persistent cursor.
|
private |
Level where the cursor is positioned or need to be positioned in case of restore.