PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
dbasedesc.c
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * dbasedesc.c
4 * rmgr descriptor routines for commands/dbcommands.c
5 *
6 * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 *
10 * IDENTIFICATION
11 * src/backend/access/rmgrdesc/dbasedesc.c
12 *
13 *-------------------------------------------------------------------------
14 */
15#include "postgres.h"
16
18#include "lib/stringinfo.h"
19
20
21void
23{
24 char *rec = XLogRecGetData(record);
25 uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
26
28 {
31
32 appendStringInfo(buf, "copy dir %u/%u to %u/%u",
33 xlrec->src_tablespace_id, xlrec->src_db_id,
34 xlrec->tablespace_id, xlrec->db_id);
35 }
36 else if (info == XLOG_DBASE_CREATE_WAL_LOG)
37 {
40
41 appendStringInfo(buf, "create dir %u/%u",
42 xlrec->tablespace_id, xlrec->db_id);
43 }
44 else if (info == XLOG_DBASE_DROP)
45 {
46 xl_dbase_drop_rec *xlrec = (xl_dbase_drop_rec *) rec;
47 int i;
48
50 for (i = 0; i < xlrec->ntablespaces; i++)
51 appendStringInfo(buf, " %u/%u",
52 xlrec->tablespace_ids[i], xlrec->db_id);
53 }
54}
55
56const char *
58{
59 const char *id = NULL;
60
61 switch (info & ~XLR_INFO_MASK)
62 {
64 id = "CREATE_FILE_COPY";
65 break;
67 id = "CREATE_WAL_LOG";
68 break;
69 case XLOG_DBASE_DROP:
70 id = "DROP";
71 break;
72 }
73
74 return id;
75}
uint8_t uint8
Definition: c.h:483
const char * dbase_identify(uint8 info)
Definition: dbasedesc.c:57
void dbase_desc(StringInfo buf, XLogReaderState *record)
Definition: dbasedesc.c:22
#define XLOG_DBASE_CREATE_WAL_LOG
#define XLOG_DBASE_DROP
#define XLOG_DBASE_CREATE_FILE_COPY
int i
Definition: isn.c:72
static char * buf
Definition: pg_test_fsync.c:72
void appendStringInfo(StringInfo str, const char *fmt,...)
Definition: stringinfo.c:94
void appendStringInfoString(StringInfo str, const char *s)
Definition: stringinfo.c:179
Oid tablespace_ids[FLEXIBLE_ARRAY_MEMBER]
#define XLogRecGetInfo(decoder)
Definition: xlogreader.h:410
#define XLogRecGetData(decoder)
Definition: xlogreader.h:415
#define XLR_INFO_MASK
Definition: xlogrecord.h:62