PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
twophase_rmgr.c
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * twophase_rmgr.c
4  * Two-phase-commit resource managers tables
5  *
6  * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  *
10  * IDENTIFICATION
11  * src/backend/access/transam/twophase_rmgr.c
12  *
13  *-------------------------------------------------------------------------
14  */
15 #include "postgres.h"
16 
17 #include "access/multixact.h"
18 #include "access/twophase_rmgr.h"
19 #include "pgstat.h"
20 #include "storage/lock.h"
21 #include "storage/predicate.h"
22 
23 
25 {
26  NULL, /* END ID */
27  lock_twophase_recover, /* Lock */
28  NULL, /* pgstat */
29  multixact_twophase_recover, /* MultiXact */
30  predicatelock_twophase_recover /* PredicateLock */
31 };
32 
34 {
35  NULL, /* END ID */
36  lock_twophase_postcommit, /* Lock */
37  pgstat_twophase_postcommit, /* pgstat */
38  multixact_twophase_postcommit, /* MultiXact */
39  NULL /* PredicateLock */
40 };
41 
43 {
44  NULL, /* END ID */
45  lock_twophase_postabort, /* Lock */
46  pgstat_twophase_postabort, /* pgstat */
47  multixact_twophase_postabort, /* MultiXact */
48  NULL /* PredicateLock */
49 };
50 
52 {
53  NULL, /* END ID */
55  NULL, /* pgstat */
56  NULL, /* MultiXact */
57  NULL /* PredicateLock */
58 };
#define TWOPHASE_RM_MAX_ID
Definition: twophase_rmgr.h:29
void lock_twophase_recover(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: lock.c:3958
const TwoPhaseCallback twophase_recover_callbacks[TWOPHASE_RM_MAX_ID+1]
Definition: twophase_rmgr.c:24
const TwoPhaseCallback twophase_postcommit_callbacks[TWOPHASE_RM_MAX_ID+1]
Definition: twophase_rmgr.c:33
const TwoPhaseCallback twophase_standby_recover_callbacks[TWOPHASE_RM_MAX_ID+1]
Definition: twophase_rmgr.c:51
void lock_twophase_standby_recover(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: lock.c:4139
void predicatelock_twophase_recover(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: predicate.c:4904
void lock_twophase_postcommit(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: lock.c:4171
void multixact_twophase_postabort(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: multixact.c:1791
void pgstat_twophase_postcommit(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: pgstat.c:2281
void(* TwoPhaseCallback)(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: twophase_rmgr.h:17
void multixact_twophase_postcommit(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: multixact.c:1776
const TwoPhaseCallback twophase_postabort_callbacks[TWOPHASE_RM_MAX_ID+1]
Definition: twophase_rmgr.c:42
void pgstat_twophase_postabort(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: pgstat.c:2317
#define NULL
Definition: c.h:229
void multixact_twophase_recover(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: multixact.c:1755
void lock_twophase_postabort(TransactionId xid, uint16 info, void *recdata, uint32 len)
Definition: lock.c:4197