MySQL 9.1.0
Source Code Documentation
|
Row undo. More...
#include <stddef.h>
#include <type_traits>
#include "fsp0fsp.h"
#include "ha_prototypes.h"
#include "mach0data.h"
#include "que0que.h"
#include "row0mysql.h"
#include "row0row.h"
#include "row0uins.h"
#include "row0umod.h"
#include "row0undo.h"
#include "row0upd.h"
#include "srv0srv.h"
#include "trx0purge.h"
#include "trx0rec.h"
#include "trx0roll.h"
#include "trx0rseg.h"
#include "trx0trx.h"
#include "trx0undo.h"
Functions | |
undo_node_t * | row_undo_node_create (trx_t &trx, que_thr_t *parent, mem_heap_t *heap, bool partial_rollback) |
Creates a row undo node to a query graph. More... | |
bool | row_undo_search_clust_to_pcur (undo_node_t *node) |
Looks for the clustered index record when node has the row reference. More... | |
static void | long_running_diag (undo_node_t &node) |
Called for every row, prints diagnostics for long running rollbacks. More... | |
static dberr_t | row_undo (undo_node_t *node, que_thr_t *thr) |
Fetches an undo log record and does the undo for the recorded operation. More... | |
void | row_convert_impl_to_expl_if_needed (btr_cur_t *cursor, undo_node_t *node) |
Converts an implicit lock on the record to explicit in case of partial rollback. More... | |
que_thr_t * | row_undo_step (que_thr_t *thr) |
Undoes a row operation in a table. More... | |
Row undo.
Created 1/8/1997 Heikki Tuuri
|
static |
Called for every row, prints diagnostics for long running rollbacks.
void row_convert_impl_to_expl_if_needed | ( | btr_cur_t * | cursor, |
undo_node_t * | node | ||
) |
Converts an implicit lock on the record to explicit in case of partial rollback.
[in] | cursor | cursor to record |
[in] | node | undo node |
|
static |
Fetches an undo log record and does the undo for the recorded operation.
If none left, or a partial rollback completed, returns control to the parent node, which is always a query thread node.
node | in: row undo node |
thr | in: query thread |
undo_node_t * row_undo_node_create | ( | trx_t & | trx, |
que_thr_t * | parent, | ||
mem_heap_t * | heap, | ||
bool | partial_rollback | ||
) |
Creates a row undo node to a query graph.
[in] | trx | transaction |
[in] | parent | parent node, i.e., a thr node |
[in] | heap | memory heap where created |
[in] | partial_rollback | true if partial rollback |
bool row_undo_search_clust_to_pcur | ( | undo_node_t * | node | ) |
Looks for the clustered index record when node has the row reference.
The pcur in node is used in the search. If found, stores the row to node, and stores the position of pcur, and detaches it. The pcur must be closed by the caller in any case.
node | in/out: row undo node |