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 20 void tblspc_desc(StringInfo buf,XLogReaderState * record)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 40 const char * tblspc_identify(uint8 info)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