Re: bugfix: when the blocksize is 32k, the function page_header of pageinspect returns negative numbers. - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: bugfix: when the blocksize is 32k, the function page_header of pageinspect returns negative numbers.
Date
Msg-id YOZ70IxyhdGzn6OE@paquier.xyz
Whole thread Raw
In response to Re: bugfix: when the blocksize is 32k, the function page_header of pageinspect returns negative numbers.  (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>)
List pgsql-hackers
On Thu, Jul 08, 2021 at 09:12:26AM +0530, Bharath Rupireddy wrote:
> +1. int32 makes sense because the maximum allowed block size is 32768
> and smallint with range -32768 to +32767 can't hold it. Internally,
> lower, upper, special are treated as unit16. I looked at the patch,
> how about using "int4" instead of just "int", just for readability?
> And, do we need to change in pageinspect--1.1--1.2.sql and
> pageinspect--1.0--1.1.sql along with pageinspect--1.5.sql?

Changes in the object set of an extension requires a new SQL script
that changes the objects to reflect the change.  So, in this case,
what you need to do is to create pageinspect--1.9--1.10.sql, assuming
that the new extension version is 1.10 and change page_header()
accordingly.

You also need to be careful about compatibility with past versions of
this extension, as the code you are changing to use int8 could be used
at runtime by older versions of pageinspect where int4 is used.  I
would suggest to test that with some new extra tests in
oldextversions.sql.

The patch, and your suggestions, are incorrect on those aspects.
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Alexander Lakhin
Date:
Subject: Re: More time spending with "delete pending"
Next
From: David Rowley
Date:
Subject: Re: [PATCH] expand the units that pg_size_pretty supports on output