diff options
author | Andres Freund <andres@anarazel.de> | 2014-09-19 15:17:12 +0200 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2014-09-19 16:20:29 +0200 |
commit | 728f152e07f998d2cb4fe5f24ec8da2c3bda98f2 (patch) | |
tree | 3d7f2d8a04764a093a340af3f82b0cd15f44a6c1 /src/backend/access/rmgrdesc/smgrdesc.c | |
parent | 7e3f728353fa9b36c7f98b6ec447d3f1b8deec14 (diff) | |
download | postgresql-728f152e07f998d2cb4fe5f24ec8da2c3bda98f2.tar.gz postgresql-728f152e07f998d2cb4fe5f24ec8da2c3bda98f2.zip |
Add rmgr callback to name xlog record types for display purposes.
This is primarily useful for the upcoming pg_xlogdump --stats feature,
but also allows to remove some duplicated code in the rmgr_desc
routines.
Due to the separation and harmonization, the output of dipsplayed
records changes somewhat. But since this isn't enduser oriented
content that's ok.
It's potentially desirable to further change pg_xlogdump's display of
records. It previously wasn't possible to show the record type
separately from the description forcing it to be in the last
column. But that's better done in a separate commit.
Author: Abhijit Menon-Sen, slightly editorialized by me
Reviewed-By: Álvaro Herrera, Andres Freund, and Heikki Linnakangas
Discussion: 20140604104716.GA3989@toroid.org
Diffstat (limited to 'src/backend/access/rmgrdesc/smgrdesc.c')
-rw-r--r-- | src/backend/access/rmgrdesc/smgrdesc.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/backend/access/rmgrdesc/smgrdesc.c b/src/backend/access/rmgrdesc/smgrdesc.c index c76c8156c5e..ee711bcacc7 100644 --- a/src/backend/access/rmgrdesc/smgrdesc.c +++ b/src/backend/access/rmgrdesc/smgrdesc.c @@ -29,7 +29,7 @@ smgr_desc(StringInfo buf, XLogRecord *record) xl_smgr_create *xlrec = (xl_smgr_create *) rec; char *path = relpathperm(xlrec->rnode, xlrec->forkNum); - appendStringInfo(buf, "file create: %s", path); + appendStringInfo(buf, "%s", path); pfree(path); } else if (info == XLOG_SMGR_TRUNCATE) @@ -37,10 +37,25 @@ smgr_desc(StringInfo buf, XLogRecord *record) xl_smgr_truncate *xlrec = (xl_smgr_truncate *) rec; char *path = relpathperm(xlrec->rnode, MAIN_FORKNUM); - appendStringInfo(buf, "file truncate: %s to %u blocks", path, - xlrec->blkno); + appendStringInfo(buf, "%s to %u blocks", path, xlrec->blkno); pfree(path); } - else - appendStringInfoString(buf, "UNKNOWN"); +} + +const char * +smgr_identify(uint8 info) +{ + const char *id = NULL; + + switch (info) + { + case XLOG_SMGR_CREATE: + id = "CREATE"; + break; + case XLOG_SMGR_TRUNCATE: + id = "TRUNCATE"; + break; + } + + return id; } |