File mvcc.h
FileList > cubrid > src > transaction > mvcc.h
Go to the source code of this file
#include "log_lsa.hpp"
#include "mvcc_active_tran.hpp"
#include "recovery.h"
#include "storage_common.h"
#include "thread_compat.hpp"
#include <vector>
Classes
Public Types
Public Functions
Macros
| Type |
Name |
| define |
LOG_IS_MVCC_BTREE_OPERATION (rcvindex) /* multi line expression */
|
| define |
LOG_IS_MVCC_HEAP_OPERATION (rcvindex) /* multi line expression */
|
| define |
LOG_IS_MVCC_OPERATION (rcvindex) /* multi line expression */
|
| define |
MVCC_CLEAR_ALL_FLAG_BITS (rec_header_p) ([**MVCC\_CLEAR\_FLAG\_BITS**](mvcc_8h.md#define-mvcc_clear_flag_bits) ([**rec\_header\_p**](broker__monitor_8c.md#function-timeout), [**OR\_MVCC\_FLAG\_MASK**](object__representation__constants_8h.md#define-or_mvcc_flag_mask)))
|
| define |
MVCC_CLEAR_FLAG_BITS (rec_header_p, flag) (([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_flag &= ~([**flag**](classflag.md)))
|
| define |
MVCC_GET_CHN (header) ((header)->chn)
|
| define |
MVCC_GET_DELID (header) ((header)->mvcc\_del\_id)
|
| define |
MVCC_GET_FLAG (header) ((header)->mvcc\_flag)
|
| define |
MVCC_GET_INSID (header) ((header)->mvcc\_ins\_id)
|
| define |
MVCC_GET_PREV_VERSION_LSA (header) ((header)->prev\_version\_lsa)
|
| define |
MVCC_GET_REPID (header) ((header)->repid)
|
| define |
MVCC_ID_FOLLOW_OR_EQUAL (id1, id2) (([**id1**](broker__monitor_8c.md#function-timeout)) >= ([**id2**](broker__monitor_8c.md#function-timeout)))
|
| define |
MVCC_ID_PRECEDES (id1, id2) (([**id1**](broker__monitor_8c.md#function-timeout)) < ([**id2**](broker__monitor_8c.md#function-timeout)))
|
| define |
MVCC_IS_ANY_FLAG_SET (rec_header_p) ([**MVCC\_IS\_FLAG\_SET**](mvcc_8h.md#define-mvcc_is_flag_set) ([**rec\_header\_p**](broker__monitor_8c.md#function-timeout), [**OR\_MVCC\_FLAG\_MASK**](object__representation__constants_8h.md#define-or_mvcc_flag_mask)))
|
| define |
MVCC_IS_CHN_UPTODATE (rec_header_p, chn) /* multi line expression */
|
| define |
MVCC_IS_FLAG_SET (rec_header_p, flags) (([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_flag & (flags))
|
| define |
MVCC_IS_HEADER_ALL_VISIBLE (rec_header_p) /* multi line expression */
|
| define |
MVCC_IS_HEADER_DELID_VALID (rec_header_p) /* multi line expression */
|
| define |
MVCC_IS_HEADER_INSID_NOT_ALL_VISIBLE (rec_header_p) /* multi line expression */
|
| define |
MVCC_IS_HEADER_PREV_VERSION_VALID (rec_header_p) /* multi line expression */
|
| define |
MVCC_IS_REC_DELETED_BY (rec_header_p, mvcc_id) (([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->delid\_chn.mvcc\_del\_id == mvcc\_id)
|
| define |
MVCC_IS_REC_DELETED_BY_ME (thread_p, rec_header_p) ([**logtb\_is\_current\_mvccid**](log__impl_8h.md#function-logtb_is_current_mvccid) (thread\_p, ([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_del\_id))
|
| define |
MVCC_IS_REC_INSERTED_BY (rec_header_p, mvcc_id) (([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_ins\_id == mvcc\_id)
|
| define |
MVCC_IS_REC_INSERTED_BY_ME (thread_p, rec_header_p) ([**logtb\_is\_current\_mvccid**](log__impl_8h.md#function-logtb_is_current_mvccid) (thread\_p, ([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_ins\_id))
|
| define |
MVCC_REC_HEADER_INITIALIZER { 0, 0, NULL\_CHN, [**MVCCID\_NULL**](storage__common_8h.md#define-mvccid_null), [**MVCCID\_NULL**](storage__common_8h.md#define-mvccid_null), [**LSA\_INITIALIZER**](log__lsa_8hpp.md#define-lsa_initializer) }
|
| define |
MVCC_SET_CHN (header, chn_) ((header)->chn = ([**chn\_**](broker__monitor_8c.md#function-timeout)))
|
| define |
MVCC_SET_DELID (header, mvcc_id) ((header)->mvcc\_del\_id = (mvcc\_id))
|
| define |
MVCC_SET_FLAG (header, flag) ((header)->mvcc\_flag = ([**flag**](classflag.md)))
|
| define |
MVCC_SET_FLAG_BITS (rec_header_p, flag) (([**rec\_header\_p**](broker__monitor_8c.md#function-timeout))->mvcc\_flag \|= ([**flag**](classflag.md)))
|
| define |
MVCC_SET_INSID (header, mvcc_id) ((header)->mvcc\_ins\_id = (mvcc\_id))
|
| define |
MVCC_SET_PREVIOUS_VERSION_LSA (header, new_lsa) /* multi line expression */
|
| define |
MVCC_SET_REPID (header, rep_id) ((header)->repid = (rep\_id))
|
| define |
MVCC_SNAPSHOT_GET_HIGHEST_COMMITTED_ID (snapshot) ((snapshot)->highest\_completed\_mvccid)
|
| define |
MVCC_SNAPSHOT_GET_LOWEST_ACTIVE_ID (snapshot) ((snapshot)->lowest\_active\_mvccid)
|
Public Types Documentation
typedef MVCC_INFO
typedef struct mvcc_info MVCC_INFO;
typedef struct mvcc_rec_header MVCC_REC_HEADER;
typedef MVCC_SATISFIES_DELETE_RESULT
typedef enum mvcc_satisfies_delete_result MVCC_SATISFIES_DELETE_RESULT;
typedef MVCC_SATISFIES_SNAPSHOT_RESULT
typedef enum mvcc_satisfies_snapshot_result MVCC_SATISFIES_SNAPSHOT_RESULT;
typedef MVCC_SATISFIES_VACUUM_RESULT
typedef enum mvcc_satisfies_vacuum_result MVCC_SATISFIES_VACUUM_RESULT;
typedef MVCC_SNAPSHOT
typedef struct mvcc_snapshot MVCC_SNAPSHOT;
typedef MVCC_SNAPSHOT_FUNC
typedef MVCC_SATISFIES_SNAPSHOT_RESULT(* MVCC_SNAPSHOT_FUNC) (THREAD_ENTRY *thread_p, MVCC_REC_HEADER *rec_header, MVCC_SNAPSHOT *snapshot);
enum mvcc_satisfies_delete_result
enum mvcc_satisfies_delete_result {
DELETE_RECORD_INSERT_IN_PROGRESS,
DELETE_RECORD_CAN_DELETE,
DELETE_RECORD_DELETED,
DELETE_RECORD_DELETE_IN_PROGRESS,
DELETE_RECORD_SELF_DELETED
};
enum mvcc_satisfies_snapshot_result
enum mvcc_satisfies_snapshot_result {
TOO_OLD_FOR_SNAPSHOT,
SNAPSHOT_SATISFIED,
TOO_NEW_FOR_SNAPSHOT
};
enum mvcc_satisfies_vacuum_result
enum mvcc_satisfies_vacuum_result {
VACUUM_RECORD_REMOVE,
VACUUM_RECORD_DELETE_INSID_PREV_VER,
VACUUM_RECORD_CANNOT_VACUUM
};
Public Functions Documentation
function mvcc_is_mvcc_disabled_class
bool mvcc_is_mvcc_disabled_class (
const OID * class_oid
)
function mvcc_is_not_deleted_for_snapshot
MVCC_SATISFIES_SNAPSHOT_RESULT mvcc_is_not_deleted_for_snapshot (
THREAD_ENTRY * thread_p,
MVCC_REC_HEADER * rec_header,
MVCC_SNAPSHOT * snapshot
)
function mvcc_satisfies_delete
MVCC_SATISFIES_DELETE_RESULT mvcc_satisfies_delete (
THREAD_ENTRY * thread_p,
MVCC_REC_HEADER * rec_header
)
function mvcc_satisfies_dirty
MVCC_SATISFIES_SNAPSHOT_RESULT mvcc_satisfies_dirty (
THREAD_ENTRY * thread_p,
MVCC_REC_HEADER * rec_header,
MVCC_SNAPSHOT * snapshot
)
function mvcc_satisfies_snapshot
MVCC_SATISFIES_SNAPSHOT_RESULT mvcc_satisfies_snapshot (
THREAD_ENTRY * thread_p,
MVCC_REC_HEADER * rec_header,
MVCC_SNAPSHOT * snapshot
)
function mvcc_satisfies_vacuum
MVCC_SATISFIES_VACUUM_RESULT mvcc_satisfies_vacuum (
THREAD_ENTRY * thread_p,
MVCC_REC_HEADER * rec_header,
MVCCID oldest_mvccid
)
Macro Definition Documentation
define LOG_IS_MVCC_BTREE_OPERATION
#define LOG_IS_MVCC_BTREE_OPERATION (
rcvindex
) `/* multi line expression */`
define LOG_IS_MVCC_HEAP_OPERATION
#define LOG_IS_MVCC_HEAP_OPERATION (
rcvindex
) `/* multi line expression */`
define LOG_IS_MVCC_OPERATION
#define LOG_IS_MVCC_OPERATION (
rcvindex
) `/* multi line expression */`
define MVCC_CLEAR_ALL_FLAG_BITS
#define MVCC_CLEAR_ALL_FLAG_BITS (
rec_header_p
) `( MVCC_CLEAR_FLAG_BITS ( rec_header_p , OR_MVCC_FLAG_MASK ))`
define MVCC_CLEAR_FLAG_BITS
#define MVCC_CLEAR_FLAG_BITS (
rec_header_p,
flag
) `(( rec_header_p )->mvcc_flag &= ~( flag ))`
define MVCC_GET_CHN
#define MVCC_GET_CHN (
header
) `((header)->chn)`
define MVCC_GET_DELID
#define MVCC_GET_DELID (
header
) `((header)->mvcc_del_id)`
define MVCC_GET_FLAG
#define MVCC_GET_FLAG (
header
) `((header)->mvcc_flag)`
define MVCC_GET_INSID
#define MVCC_GET_INSID (
header
) `((header)->mvcc_ins_id)`
define MVCC_GET_PREV_VERSION_LSA
#define MVCC_GET_PREV_VERSION_LSA (
header
) `((header)->prev_version_lsa)`
define MVCC_GET_REPID
#define MVCC_GET_REPID (
header
) `((header)->repid)`
define MVCC_ID_FOLLOW_OR_EQUAL
#define MVCC_ID_FOLLOW_OR_EQUAL (
id1,
id2
) `(( id1 ) >= ( id2 ))`
define MVCC_ID_PRECEDES
#define MVCC_ID_PRECEDES (
id1,
id2
) `(( id1 ) < ( id2 ))`
define MVCC_IS_ANY_FLAG_SET
#define MVCC_IS_ANY_FLAG_SET (
rec_header_p
) `( MVCC_IS_FLAG_SET ( rec_header_p , OR_MVCC_FLAG_MASK ))`
define MVCC_IS_CHN_UPTODATE
#define MVCC_IS_CHN_UPTODATE (
rec_header_p,
chn
) `/* multi line expression */`
define MVCC_IS_FLAG_SET
#define MVCC_IS_FLAG_SET (
rec_header_p,
flags
) `(( rec_header_p )->mvcc_flag & (flags))`
#define MVCC_IS_HEADER_ALL_VISIBLE (
rec_header_p
) `/* multi line expression */`
#define MVCC_IS_HEADER_DELID_VALID (
rec_header_p
) `/* multi line expression */`
#define MVCC_IS_HEADER_INSID_NOT_ALL_VISIBLE (
rec_header_p
) `/* multi line expression */`
#define MVCC_IS_HEADER_PREV_VERSION_VALID (
rec_header_p
) `/* multi line expression */`
define MVCC_IS_REC_DELETED_BY
#define MVCC_IS_REC_DELETED_BY (
rec_header_p,
mvcc_id
) `(( rec_header_p )->delid_chn.mvcc_del_id == mvcc_id)`
define MVCC_IS_REC_DELETED_BY_ME
#define MVCC_IS_REC_DELETED_BY_ME (
thread_p,
rec_header_p
) `( logtb_is_current_mvccid (thread_p, ( rec_header_p )->mvcc_del_id))`
define MVCC_IS_REC_INSERTED_BY
#define MVCC_IS_REC_INSERTED_BY (
rec_header_p,
mvcc_id
) `(( rec_header_p )->mvcc_ins_id == mvcc_id)`
define MVCC_IS_REC_INSERTED_BY_ME
#define MVCC_IS_REC_INSERTED_BY_ME (
thread_p,
rec_header_p
) `( logtb_is_current_mvccid (thread_p, ( rec_header_p )->mvcc_ins_id))`
#define MVCC_REC_HEADER_INITIALIZER `{ 0, 0, NULL_CHN , MVCCID_NULL , MVCCID_NULL , LSA_INITIALIZER }`
define MVCC_SET_CHN
#define MVCC_SET_CHN (
header,
chn_
) `((header)->chn = ( chn_ ))`
define MVCC_SET_DELID
#define MVCC_SET_DELID (
header,
mvcc_id
) `((header)->mvcc_del_id = (mvcc_id))`
define MVCC_SET_FLAG
#define MVCC_SET_FLAG (
header,
flag
) `((header)->mvcc_flag = ( flag ))`
define MVCC_SET_FLAG_BITS
#define MVCC_SET_FLAG_BITS (
rec_header_p,
flag
) `(( rec_header_p )->mvcc_flag |= ( flag ))`
define MVCC_SET_INSID
#define MVCC_SET_INSID (
header,
mvcc_id
) `((header)->mvcc_ins_id = (mvcc_id))`
define MVCC_SET_PREVIOUS_VERSION_LSA
#define MVCC_SET_PREVIOUS_VERSION_LSA (
header,
new_lsa
) `/* multi line expression */`
define MVCC_SET_REPID
#define MVCC_SET_REPID (
header,
rep_id
) `((header)->repid = (rep_id))`
define MVCC_SNAPSHOT_GET_HIGHEST_COMMITTED_ID
#define MVCC_SNAPSHOT_GET_HIGHEST_COMMITTED_ID (
snapshot
) `((snapshot)->highest_completed_mvccid)`
define MVCC_SNAPSHOT_GET_LOWEST_ACTIVE_ID
#define MVCC_SNAPSHOT_GET_LOWEST_ACTIVE_ID (
snapshot
) `((snapshot)->lowest_active_mvccid)`
The documentation for this class was generated from the following file cubrid/src/transaction/mvcc.h