MySQL 8.0.39
Source Code Documentation
|
Fresh insert undo. More...
#include "row0uins.h"
#include "btr0btr.h"
#include "dict0boot.h"
#include "dict0crea.h"
#include "dict0dd.h"
#include "dict0dict.h"
#include "ibuf0ibuf.h"
#include "log0chkp.h"
#include "mach0data.h"
#include "que0que.h"
#include "row0log.h"
#include "row0row.h"
#include "row0undo.h"
#include "row0upd.h"
#include "row0vers.h"
#include "trx0rec.h"
#include "trx0roll.h"
#include "trx0trx.h"
#include "trx0undo.h"
Functions | |
static dberr_t | row_undo_ins_remove_clust_rec (undo_node_t *node) |
Removes a clustered index record. More... | |
static dberr_t | row_undo_ins_remove_sec_low (ulint mode, dict_index_t *index, dtuple_t *entry, que_thr_t *thr, undo_node_t *node) |
Removes a secondary index entry if found. More... | |
static dberr_t | row_undo_ins_remove_sec (dict_index_t *index, dtuple_t *entry, que_thr_t *thr, undo_node_t *node) |
Removes a secondary index entry from the index if found. More... | |
static void | row_undo_ins_parse_undo_rec (undo_node_t *node, THD *thd, MDL_ticket **mdl) |
Parses the row reference and other info in a fresh insert undo record. More... | |
static dberr_t | row_undo_ins_remove_multi_sec (dict_index_t *index, undo_node_t *node, que_thr_t *thr, mem_heap_t *heap) |
Removes a secondary index entry from the index, which is built on multi-value field, if found. More... | |
static dberr_t | row_undo_ins_remove_sec_rec (undo_node_t *node, que_thr_t *thr) |
Removes secondary index records. More... | |
dberr_t | row_undo_ins (undo_node_t *node, que_thr_t *thr) |
Undoes a fresh insert of a row to a table. More... | |
Fresh insert undo.
Created 2/25/1997 Heikki Tuuri
dberr_t row_undo_ins | ( | undo_node_t * | node, |
que_thr_t * | thr | ||
) |
Undoes a fresh insert of a row to a table.
A fresh insert means that the same clustered index unique key did not have any record, even delete marked, at the time of the insert. InnoDB is eager in a rollback: if it figures out that an index record will be removed in the purge anyway, it will remove it in the rollback.
node | in: row undo node |
thr | in: query thread |
|
static |
Parses the row reference and other info in a fresh insert undo record.
[in,out] | node | row undo node |
[in] | thd | THD associated with the node |
[in,out] | mdl | MDL ticket or nullptr if unnecessary |
|
static |
Removes a clustered index record.
The pcur in node was positioned on the record, now it is detached.
node | in: undo node |
|
static |
Removes a secondary index entry from the index, which is built on multi-value field, if found.
For each value, it tries first optimistic, then pessimistic descent down the tree.
[in,out] | index | multi-value index |
[in] | node | undo node |
[in] | thr | query thread |
[in,out] | heap | memory heap |
|
static |
Removes a secondary index entry from the index if found.
Tries first optimistic, then pessimistic descent down the tree.
[in] | index | index |
[in] | entry | index entry to insert |
[in] | thr | query thread |
[in] | node | undo node |
|
static |
Removes a secondary index entry if found.
[in] | mode | BTR_MODIFY_LEAF or BTR_MODIFY_TREE, depending on whether we wish optimistic or pessimistic descent down the index tree |
[in] | index | index |
[in] | entry | index entry to remove |
[in] | thr | query thread |
[in] | node | undo node |
|
static |
Removes secondary index records.
node | in/out: row undo node |
thr | in: query thread |