On Fri, Mar 25, 2022 at 1:43 PM Japin Li <japi...@hotmail.com> wrote:
> +       printf(_("  -x, --xid=XID          only show records with transaction 
> ID XID\n"));
>
> I think the description of transaction ID is enough, IIUC, XID is use in core,
> which means transaction ID.

The mention of "XID" corresponds to XID on the left, like a sort of
variable.  That text is not changed by this patch.

> See: src/bin/pg_resetwal/pg_resetwal.c
>
> 1239     printf(_("  -V, --version                    output version 
> information, then exit\n"));
> 1240     printf(_("  -x, --next-transaction-id=XID    set next transaction 
> ID\n"));

Hmm, yeah that is inconsistent, but it seems like it is pg_resetwal.c
that is not following the notational convention there.  Other things
in pg_resetwal's --help use that 'variable' style.

> +                               if (sscanf(optarg, "%u/%u/%u",
> +                                                  
> &config.filter_by_relation.spcNode,
> +                                                  
> &config.filter_by_relation.dbNode,
> +                                                  
> &config.filter_by_relation.relNode) != 3 ||
> +                                       
> !OidIsValid(config.filter_by_relation.spcNode) ||
> +                                       
> !OidIsValid(config.filter_by_relation.relNode))
>
> It seems we should also check the dbNode.

This was discussed earlier: it's OK for the dbNode to be invalid (0),
because that's how shared relations like pg_database are referenced.
Like this:

$ pg_waldump pgdata/pg_wal/000000010000000000000001 --relation
1664/0/1262 --fork vm --limit 1
rmgr: Heap2       len (rec/tot):     64/  8256, tx:          0, lsn:
0/01491F20, prev 0/01491EC0, desc: VISIBLE cutoff xid 1 flags 0x03,
blkref #0: rel 1664/0/1262 fork vm blk 0 FPW, blkref #1: rel
1664/0/1262 blk 0

Thanks for looking!  I've now pushed the improvements discussed so far.


Reply via email to