Обсуждение: pgsql: Improve code around the recently added rm_identify rmgr callback

Поиск
Список
Период
Сортировка

pgsql: Improve code around the recently added rm_identify rmgr callback

От
Andres Freund
Дата:
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.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/604f7956b9460192222dd37bd3baea24cb669a47

Modified Files
--------------
contrib/pg_xlogdump/pg_xlogdump.c         |    7 +++++-
src/backend/access/rmgrdesc/clogdesc.c    |    2 +-
src/backend/access/rmgrdesc/dbasedesc.c   |    2 +-
src/backend/access/rmgrdesc/gindesc.c     |    2 +-
src/backend/access/rmgrdesc/gistdesc.c    |    2 +-
src/backend/access/rmgrdesc/heapdesc.c    |   33 ++++++++++++-----------------
src/backend/access/rmgrdesc/mxactdesc.c   |    2 +-
src/backend/access/rmgrdesc/nbtdesc.c     |    2 +-
src/backend/access/rmgrdesc/relmapdesc.c  |    2 +-
src/backend/access/rmgrdesc/seqdesc.c     |    2 +-
src/backend/access/rmgrdesc/smgrdesc.c    |    2 +-
src/backend/access/rmgrdesc/spgdesc.c     |    2 +-
src/backend/access/rmgrdesc/standbydesc.c |    2 +-
src/backend/access/rmgrdesc/tblspcdesc.c  |    2 +-
src/backend/access/rmgrdesc/xactdesc.c    |    2 +-
src/backend/access/rmgrdesc/xlogdesc.c    |    2 +-
src/backend/access/transam/xlog.c         |    3 ++-
src/include/access/xlog_internal.h        |    3 ---
18 files changed, 36 insertions(+), 38 deletions(-)