Re: pg_waldump and PREPARE

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-04-25T16:04:42Z
Lists: pgsql-hackers
On 2019-Apr-26, Fujii Masao wrote:

> Hi,
> 
> pg_waldump report no detail information about PREPARE TRANSACTION record,
> as follows.
> 
>     rmgr: Transaction len (rec/tot):    250/   250, tx:        485,
> lsn: 0/020000A8, prev 0/02000060, desc: PREPARE
> 
> I'd like to modify pg_waldump, i.e., xact_desc(), so that it reports
> detail information like GID, as follows. Attached patch does that.
> This would be helpful, for example, when diagnosing 2PC-related
> trouble by checking the status of 2PC transaction with the specified GID.
> Thought?
> 
>     rmgr: Transaction len (rec/tot):    250/   250, tx:        485,
> lsn: 0/020000A8, prev 0/02000060, desc: PREPARE gid abc: 2004-06-17
> 05:26:27.500240 JST

I think this is a great change to make.

Strangely, before your patch, ParsePrepareRecord seems completely
unused.

I'm not sure I like the moving of that routine to xactdesc.c ...
on one hand, it would be side-by-side with ParseCommitRecord, but OTOH
it seems weird to have twophase.c call xactdesc.c.  I also wonder if
defining the structs in the way you do is the most sensible arrangement.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Fix comment in xact.h

  2. Make pg_waldump report more detail information about PREPARE TRANSACTION record.

  3. Store 2PC GID in commit/abort WAL recs for logical decoding