Line data Source code
1 : /*------------------------------------------------------------------------- 2 : * 3 : * tblspcdesc.c 4 : * rmgr descriptor routines for commands/tablespace.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/tblspcdesc.c 12 : * 13 : *------------------------------------------------------------------------- 14 : */ 15 : #include "postgres.h" 16 : 17 : #include "commands/tablespace.h" 18 : 19 : 20 : void 21 16 : tblspc_desc(StringInfo buf, XLogReaderState *record) 22 : { 23 16 : char *rec = XLogRecGetData(record); 24 16 : uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; 25 : 26 16 : if (info == XLOG_TBLSPC_CREATE) 27 : { 28 0 : xl_tblspc_create_rec *xlrec = (xl_tblspc_create_rec *) rec; 29 : 30 0 : appendStringInfo(buf, "%u \"%s\"", xlrec->ts_id, xlrec->ts_path); 31 : } 32 16 : else if (info == XLOG_TBLSPC_DROP) 33 : { 34 16 : xl_tblspc_drop_rec *xlrec = (xl_tblspc_drop_rec *) rec; 35 : 36 16 : appendStringInfo(buf, "%u", xlrec->ts_id); 37 : } 38 16 : } 39 : 40 : const char * 41 16 : tblspc_identify(uint8 info) 42 : { 43 16 : const char *id = NULL; 44 : 45 16 : switch (info & ~XLR_INFO_MASK) 46 : { 47 0 : case XLOG_TBLSPC_CREATE: 48 0 : id = "CREATE"; 49 0 : break; 50 16 : case XLOG_TBLSPC_DROP: 51 16 : id = "DROP"; 52 16 : break; 53 : } 54 : 55 16 : return id; 56 : }