Re: pageinspect's infomask and infomask2 as smallint - Mailing list pgsql-hackers

From Tom Lane
Subject Re: pageinspect's infomask and infomask2 as smallint
Date
Msg-id 9127.1297784520@sss.pgh.pa.us
Whole thread Raw
In response to Re: pageinspect's infomask and infomask2 as smallint  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: pageinspect's infomask and infomask2 as smallint
Re: pageinspect's infomask and infomask2 as smallint
List pgsql-hackers
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> On 14.02.2011 21:49, Alvaro Herrera wrote:
>> Thanks to Noah Misch's review of the keylock patch I noticed that
>> pageinspect's heap_page_items(bytea) function returns infomask and
>> infomask2 as smallint (signed).  But the fields in the tuple header are
>> 16 bits unsigned, so if the high (16th) bit is set, it returns negative
>> values which seem hard to handle.  Not a problem for infomask, because
>> the high bit is used for a VACUUM FULL-era flag; but in infomask2 it is
>> used.
>> 
>> This seems hard to fix for existing installations with the unpackaged
>> module already loaded -- IIRC it's not acceptable to drop a function,
>> which is what would need to be done here.

> pageinspect is just a debugging aid, so I think we should change it from 
> smallint to int4 in 9.1, and not bother backporting.

I don't see any reason that the old version of the function couldn't be
dropped in the upgrade script.  It's not likely anything would be
depending on it, is it?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Add support for logging the current role
Next
From: Robert Haas
Date:
Subject: Re: Add support for logging the current role