diff options
author | Andres Freund | 2014-09-22 14:48:14 +0000 |
---|---|---|
committer | Andres Freund | 2014-09-22 15:49:34 +0000 |
commit | 604f7956b9460192222dd37bd3baea24cb669a47 (patch) | |
tree | b5724bd4bcb4a36e51c1fdd90edeb162edb30d24 /src/backend/access/rmgrdesc/mxactdesc.c | |
parent | 898f8a96ef9dfa79eac9ec1621a89e71fe16601c (diff) |
Improve code around the recently added rm_identify rmgr callback.
There are four weaknesses in728f152e07f998d2cb4fe5f24ec8da2c3bda98f2:
* append_init() in heapdesc.c was ugly and required that rm_identify
return values are only valid till the next call. Instead just add a
couple more switch() cases for the INIT_PAGE cases. Now the returned
value will always be valid.
* a couple rm_identify() callbacks missed masking xl_info with
~XLR_INFO_MASK.
* pg_xlogdump didn't map a NULL rm_identify to UNKNOWN or a similar
string.
* append_init() was called when id=NULL - which should never actually
happen. But it's better to be careful.
Diffstat (limited to 'src/backend/access/rmgrdesc/mxactdesc.c')
-rw-r--r-- | src/backend/access/rmgrdesc/mxactdesc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/rmgrdesc/mxactdesc.c b/src/backend/access/rmgrdesc/mxactdesc.c index 177aebea079..afc5aca1972 100644 --- a/src/backend/access/rmgrdesc/mxactdesc.c +++ b/src/backend/access/rmgrdesc/mxactdesc.c @@ -77,7 +77,7 @@ multixact_identify(uint8 info) { const char *id = NULL; - switch (info) + switch (info & ~XLR_INFO_MASK) { case XLOG_MULTIXACT_ZERO_OFF_PAGE: id = "ZERO_OFF_PAGE"; |