From 604f7956b9460192222dd37bd3baea24cb669a47 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Mon, 22 Sep 2014 16:48:14 +0200 Subject: 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. --- src/backend/access/rmgrdesc/gindesc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/backend/access/rmgrdesc/gindesc.c') diff --git a/src/backend/access/rmgrdesc/gindesc.c b/src/backend/access/rmgrdesc/gindesc.c index dd4c791864d..2f783cee2bb 100644 --- a/src/backend/access/rmgrdesc/gindesc.c +++ b/src/backend/access/rmgrdesc/gindesc.c @@ -181,7 +181,7 @@ gin_identify(uint8 info) { const char *id = NULL; - switch (info) + switch (info & ~XLR_INFO_MASK) { case XLOG_GIN_CREATE_INDEX: id = "CREATE_INDEX"; -- cgit v1.2.3