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 
24 const TwoPhaseCallback twophase_recover_callbacks[TWOPHASE_RM_MAX_ID + 1] =
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 
33 const TwoPhaseCallback twophase_postcommit_callbacks[TWOPHASE_RM_MAX_ID + 1] =
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 
42 const TwoPhaseCallback twophase_postabort_callbacks[TWOPHASE_RM_MAX_ID + 1] =
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 
51 const TwoPhaseCallback twophase_standby_recover_callbacks[TWOPHASE_RM_MAX_ID + 1] =
52 {
53 	NULL,						/* END ID */
54 	lock_twophase_standby_recover,	/* Lock */
55 	NULL,						/* pgstat */
56 	NULL,						/* MultiXact */
57 	NULL						/* PredicateLock */
58 };
59