1
1
/*****************************************************************************
3
Copyright (C) 1997, 2009, Innobase Oy. All Rights Reserved.
3
Copyright (c) 1997, 2009, Innobase Oy. All Rights Reserved.
5
5
This program is free software; you can redistribute it and/or modify it under
6
6
the terms of the GNU General Public License as published by the Free Software
45
45
que_thr_t* parent, /*!< in: parent node, i.e., a thr node */
46
46
mem_heap_t* heap); /*!< in: memory heap where created */
47
47
/***********************************************************//**
48
Determines if it is possible to remove a secondary index entry.
49
Removal is possible if the secondary index entry does not refer to any
50
not delete marked version of a clustered index record where DB_TRX_ID
51
is newer than the purge view.
53
NOTE: This function should only be called by the purge thread, only
54
while holding a latch on the leaf page of the secondary index entry
55
(or keeping the buffer pool watch on the page). It is possible that
56
this function first returns TRUE and then FALSE, if a user transaction
57
inserts a record that the secondary index entry would refer to.
58
However, in that case, the user transaction would also re-insert the
59
secondary index entry after purge has removed it and released the leaf
61
@return TRUE if the secondary index record can be purged */
66
purge_node_t* node, /*!< in/out: row purge node */
67
dict_index_t* index, /*!< in: secondary index */
68
const dtuple_t* entry); /*!< in: secondary index entry */
69
/***************************************************************
70
48
Does the purge operation for a single undo log record. This is a high-level
71
49
function used in an SQL execution graph.
72
50
@return query thread to run next or NULL */