Line data Source code
1 : /*------------------------------------------------------------------------- 2 : * 3 : * replorigindesc.c 4 : * rmgr descriptor routines for replication/logical/origin.c 5 : * 6 : * Portions Copyright (c) 2015-2024, PostgreSQL Global Development Group 7 : * 8 : * 9 : * IDENTIFICATION 10 : * src/backend/access/rmgrdesc/replorigindesc.c 11 : * 12 : *------------------------------------------------------------------------- 13 : */ 14 : #include "postgres.h" 15 : 16 : #include "replication/origin.h" 17 : 18 : void 19 0 : replorigin_desc(StringInfo buf, XLogReaderState *record) 20 : { 21 0 : char *rec = XLogRecGetData(record); 22 0 : uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; 23 : 24 0 : switch (info) 25 : { 26 0 : case XLOG_REPLORIGIN_SET: 27 : { 28 : xl_replorigin_set *xlrec; 29 : 30 0 : xlrec = (xl_replorigin_set *) rec; 31 : 32 0 : appendStringInfo(buf, "set %u; lsn %X/%X; force: %d", 33 0 : xlrec->node_id, 34 0 : LSN_FORMAT_ARGS(xlrec->remote_lsn), 35 0 : xlrec->force); 36 0 : break; 37 : } 38 0 : case XLOG_REPLORIGIN_DROP: 39 : { 40 : xl_replorigin_drop *xlrec; 41 : 42 0 : xlrec = (xl_replorigin_drop *) rec; 43 : 44 0 : appendStringInfo(buf, "drop %u", xlrec->node_id); 45 0 : break; 46 : } 47 : } 48 0 : } 49 : 50 : const char * 51 0 : replorigin_identify(uint8 info) 52 : { 53 0 : switch (info) 54 : { 55 0 : case XLOG_REPLORIGIN_SET: 56 0 : return "SET"; 57 0 : case XLOG_REPLORIGIN_DROP: 58 0 : return "DROP"; 59 0 : default: 60 0 : return NULL; 61 : } 62 : }