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

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Amit Kapila <amit.kapila16@gmail.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-17T00:44:17Z
Lists: pgsql-hackers

Attachments

On Mon, Sep 16, 2019 at 11:11:06AM -0300, Alvaro Herrera wrote:
> On 2019-Sep-16, Michael Paquier wrote:
>> On Mon, Sep 16, 2019 at 11:46:16AM +0530, Amit Kapila wrote:
>> Okay, using two separate columns leads to the attached.  Any thoughts?
>> This also includes a fix for cases with IS_LOCKED_ONLY and UPGRADED.
> 
> I like how it looks in the expected test output.  Didn't review the code
> closely, but it looks reasonable in a quick glance.

Thanks for the review.

> Whitespace nitpick: pgindent will do something very annoying with
> this:
>
>> +		PG_RETURN_DATUM(
>> +			HeapTupleGetDatum(heap_form_tuple(tupdesc, values, nulls)));
> 
> I suggest to split the line in the first comma, not in the parens.

Indeed.  I am switching to use a HeapTuple as intermediate step
instead.

>> +      Combined flags include for example <literal>HEAP_XMIN_FROZEN</literal>
>> +      which is defined as a set of <literal>HEAP_XMIN_COMMITTED</literal>
>> +      and <literal>HEAP_XMIN_INVALID</literal>.
> 
> I suggest something like "Combined flags are displayed for source-level
> macros that take into account the value of more than one raw bit, such
> as HEAP_XMIN_FROZEN".  (We probably don't want an exhaustive list, which
> becomes annoying to maintain; users can refer to the source file.)

Yes, I didn't want to provide a list for that exact reason, and your
suggestion of change sounds fine to me.

> There's a typo "bites" in a comment.

Thanks, fixed.

Amit, what do you think?  Does the patch match with what you have in
mind?
--
Michael

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