1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-25 20:23:07 +03:00

Split out list of XLog resource managers

The new rmgrlist.h header, containing all necessary data
about built-in resource managers, allows other pieces of code to
access them.

In particular, this allows a future pg_xlogdump program to extract
rm_desc function pointers, without having to keep a duplicate list of
them.
This commit is contained in:
Alvaro Herrera
2013-02-05 17:21:29 -03:00
parent cb9b66d31a
commit 5a1cd89f8f
4 changed files with 68 additions and 38 deletions

View File

@@ -13,27 +13,23 @@ typedef uint8 RmgrId;
/*
* Built-in resource managers
*
* Note: RM_MAX_ID could be as much as 255 without breaking the XLOG file
* format, but we keep it small to minimize the size of RmgrTable[].
* The actual numerical values for each rmgr ID are defined by the order
* of entries in rmgrlist.h.
*
* Note: RM_MAX_ID must fit in RmgrId; widening that type will affect the XLOG
* file format.
*/
#define RM_XLOG_ID 0
#define RM_XACT_ID 1
#define RM_SMGR_ID 2
#define RM_CLOG_ID 3
#define RM_DBASE_ID 4
#define RM_TBLSPC_ID 5
#define RM_MULTIXACT_ID 6
#define RM_RELMAP_ID 7
#define RM_STANDBY_ID 8
#define RM_HEAP2_ID 9
#define RM_HEAP_ID 10
#define RM_BTREE_ID 11
#define RM_HASH_ID 12
#define RM_GIN_ID 13
#define RM_GIST_ID 14
#define RM_SEQ_ID 15
#define RM_SPGIST_ID 16
#define PG_RMGR(symname,name,redo,desc,startup,cleanup,restartpoint) \
symname,
#define RM_MAX_ID RM_SPGIST_ID
typedef enum RmgrIds
{
#include "access/rmgrlist.h"
RM_NEXT_ID
} RmgrIds;
#undef PG_RMGR
#define RM_MAX_ID (RM_NEXT_ID - 1)
#endif /* RMGR_H */