Re: [HACKERS] [PATCH] pageinspect function to decode infomasks

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Craig Ringer <craig@2ndquadrant.com>, Ashutosh Sharma <ashu.coek88@gmail.com>, Julien Rouhaud <rjuju123@gmail.com>, Peter Geoghegan <pg@bowt.ie>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Abhijit Menon-Sen <ams@2ndquadrant.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Pavan Deolasee <pavan.deolasee@2ndquadrant.com>
Date: 2019-09-14T05:48:37Z
Lists: pgsql-hackers
On Sat, Sep 14, 2019 at 10:10 AM Michael Paquier <michael@paquier.xyz> wrote:
>
> On Sat, Sep 14, 2019 at 09:25:31AM +0530, Amit Kapila wrote:
> > On Fri, Sep 13, 2019 at 5:31 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> >> A thought I had as I fell asleep last night is to include the derivate
> >> flags in a separate output column altogether.  So
> >> heap_tuple_infomask_flags() could be made to return two columns, one
> >> with the straight one-flag-per-bit, and another one with the compound
> >> flags.
> >
> > So, in most cases, the compound column will be empty, but in some
> > cases like HEAP_XMIN_FROZEN, HEAP_XMAX_SHR_LOCK, etc. the flag will be
> > displayed.  I like this idea though it will be a bit of noise in some
> > cases but it is neat.  Another benefit is that one doesn't need to
> > invoke this function twice to see the compound flags.
>
> Hmmm.  Doesn't it become less user-friendly to invoke the function
> then?  You would need to pass it down to the FROM clause after
> fetching the raw page and then parsing its tuple items to have
> t_infomask and t_infomask2 passed down as arguments to the new
> function.  The one-column version has the advantage to be more
> consistent with tuple_data_split() after getting all the values parsed
> by heap_page_items().
>

Won't 'Lateral' clause be helpful here as the patch contains it in one
of its tests?

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com



Commits

  1. Redesign pageinspect function printing infomask bits

  2. Add to pageinspect function to make t_infomask/t_infomask2 human-readable

  3. Improve documentation of pageinspect

  4. Improve pageinspect module