1/*-------------------------------------------------------------------------
2 *
3 * tblspcdesc.c
4 * rmgr descriptor routines for commands/tablespace.c
5 *
6 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 *
10 * IDENTIFICATION
11 * src/backend/access/rmgrdesc/tblspcdesc.c
12 *
13 *-------------------------------------------------------------------------
14 */
15#include "postgres.h"
16
17#include "commands/tablespace.h"
18
19
20void
21tblspc_desc(StringInfo buf, XLogReaderState *record)
22{
23 char *rec = XLogRecGetData(record);
24 uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
25
26 if (info == XLOG_TBLSPC_CREATE)
27 {
28 xl_tblspc_create_rec *xlrec = (xl_tblspc_create_rec *) rec;
29
30 appendStringInfo(buf, "%u \"%s\"", xlrec->ts_id, xlrec->ts_path);
31 }
32 else if (info == XLOG_TBLSPC_DROP)
33 {
34 xl_tblspc_drop_rec *xlrec = (xl_tblspc_drop_rec *) rec;
35
36 appendStringInfo(buf, "%u", xlrec->ts_id);
37 }
38}
39
40const char *
41tblspc_identify(uint8 info)
42{
43 const char *id = NULL;
44
45 switch (info & ~XLR_INFO_MASK)
46 {
47 case XLOG_TBLSPC_CREATE:
48 id = "CREATE";
49 break;
50 case XLOG_TBLSPC_DROP:
51 id = "DROP";
52 break;
53 }
54
55 return id;
56}
57