InnoDB Plugin  1.0
Data Structures | Enumerations | Functions
row0undo.h File Reference
#include "univ.i"
#include "mtr0mtr.h"
#include "trx0sys.h"
#include "btr0types.h"
#include "btr0pcur.h"
#include "dict0types.h"
#include "trx0types.h"
#include "que0types.h"
#include "row0types.h"
#include "row0undo.ic"
Include dependency graph for row0undo.h:

Go to the source code of this file.

Data Structures

struct  undo_node_t

Enumerations

enum  undo_exec { UNDO_NODE_FETCH_NEXT = 1, UNDO_NODE_INSERT, UNDO_NODE_MODIFY }

Functions

UNIV_INTERN undo_node_trow_undo_node_create (trx_t *trx, que_thr_t *parent, mem_heap_t *heap)
UNIV_INTERN ibool row_undo_search_clust_to_pcur (undo_node_t *node)
UNIV_INTERN que_thr_trow_undo_step (que_thr_t *thr)

Detailed Description

Row undo

Created 1/8/1997 Heikki Tuuri

Enumeration Type Documentation

enum undo_exec

Execution state of an undo node

Enumerator:
UNDO_NODE_FETCH_NEXT 

we should fetch the next undo log record

UNDO_NODE_INSERT 

undo a fresh insert of a row to a table

UNDO_NODE_MODIFY 

undo a modify operation (DELETE or UPDATE) on a row of a table

Function Documentation

UNIV_INTERN undo_node_t* row_undo_node_create ( trx_t trx,
que_thr_t parent,
mem_heap_t heap 
)

Creates a row undo node to a query graph.

Returns
own: undo node in: memory heap where created
Parameters
trxin: transaction
parentin: parent node, i.e., a thr node
UNIV_INTERN ibool 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.

Returns
TRUE if found; NOTE the node->pcur must be closed by the caller, regardless of the return value in: row undo node
UNIV_INTERN que_thr_t* row_undo_step ( que_thr_t thr)

Undoes a row operation in a table. This is a high-level function used in SQL execution graphs.

Returns
query thread to run next or NULL in: query thread