From: Michael Paquier Date: Wed, 14 Nov 2018 01:33:10 +0000 (+0900) Subject: Add flag values in WAL description to all heap records X-Git-Tag: REL_12_BETA1~1242 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3be97b97ed37b966173f027091f21d8a7605e2a5;p=postgresql Add flag values in WAL description to all heap records Hexadecimal is consistently used as format to not bloat too much the output but keep it readable. This information is useful mainly for debugging purposes with for example pg_waldump. Author: Michael Paquier Reviewed-by: Nathan Bossart, Dmitry Dolgov, Andres Freund, Álvaro Herrera Discussion: https://postgr.es/m/20180413034734.GE1552@paquier.xyz --- diff --git a/src/backend/access/rmgrdesc/heapdesc.c b/src/backend/access/rmgrdesc/heapdesc.c index 318a281d7f..87852151bd 100644 --- a/src/backend/access/rmgrdesc/heapdesc.c +++ b/src/backend/access/rmgrdesc/heapdesc.c @@ -42,22 +42,26 @@ heap_desc(StringInfo buf, XLogReaderState *record) { xl_heap_insert *xlrec = (xl_heap_insert *) rec; - appendStringInfo(buf, "off %u", xlrec->offnum); + appendStringInfo(buf, "off %u flags 0x%02X", xlrec->offnum, + xlrec->flags); } else if (info == XLOG_HEAP_DELETE) { xl_heap_delete *xlrec = (xl_heap_delete *) rec; - appendStringInfo(buf, "off %u ", xlrec->offnum); + appendStringInfo(buf, "off %u flags 0x%02X ", + xlrec->offnum, + xlrec->flags); out_infobits(buf, xlrec->infobits_set); } else if (info == XLOG_HEAP_UPDATE) { xl_heap_update *xlrec = (xl_heap_update *) rec; - appendStringInfo(buf, "off %u xmax %u ", + appendStringInfo(buf, "off %u xmax %u flags 0x%02X ", xlrec->old_offnum, - xlrec->old_xmax); + xlrec->old_xmax, + xlrec->flags); out_infobits(buf, xlrec->old_infobits_set); appendStringInfo(buf, "; new off %u xmax %u", xlrec->new_offnum, @@ -67,9 +71,10 @@ heap_desc(StringInfo buf, XLogReaderState *record) { xl_heap_update *xlrec = (xl_heap_update *) rec; - appendStringInfo(buf, "off %u xmax %u ", + appendStringInfo(buf, "off %u xmax %u flags 0x%02X ", xlrec->old_offnum, - xlrec->old_xmax); + xlrec->old_xmax, + xlrec->flags); out_infobits(buf, xlrec->old_infobits_set); appendStringInfo(buf, "; new off %u xmax %u", xlrec->new_offnum, @@ -98,7 +103,7 @@ heap_desc(StringInfo buf, XLogReaderState *record) { xl_heap_lock *xlrec = (xl_heap_lock *) rec; - appendStringInfo(buf, "off %u: xid %u: flags %u ", + appendStringInfo(buf, "off %u: xid %u: flags 0x%02X ", xlrec->offnum, xlrec->locking_xid, xlrec->flags); out_infobits(buf, xlrec->infobits_set); } @@ -139,20 +144,21 @@ heap2_desc(StringInfo buf, XLogReaderState *record) { xl_heap_visible *xlrec = (xl_heap_visible *) rec; - appendStringInfo(buf, "cutoff xid %u flags %d", + appendStringInfo(buf, "cutoff xid %u flags 0x%02X", xlrec->cutoff_xid, xlrec->flags); } else if (info == XLOG_HEAP2_MULTI_INSERT) { xl_heap_multi_insert *xlrec = (xl_heap_multi_insert *) rec; - appendStringInfo(buf, "%d tuples", xlrec->ntuples); + appendStringInfo(buf, "%d tuples flags 0x%02X", xlrec->ntuples, + xlrec->flags); } else if (info == XLOG_HEAP2_LOCK_UPDATED) { xl_heap_lock_updated *xlrec = (xl_heap_lock_updated *) rec; - appendStringInfo(buf, "off %u: xmax %u: flags %u ", + appendStringInfo(buf, "off %u: xmax %u: flags 0x%02X ", xlrec->offnum, xlrec->xmax, xlrec->flags); out_infobits(buf, xlrec->infobits_set); }