mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
pageinspect: Improve page_header() for pages of 32kB
ld_upper, ld_lower, pd_special and the page size have been using smallint as return type, which could cause those fields to return negative values in certain cases for builds configures with a page size of 32kB. Bump pageinspect to 1.10. page_header() is able to handle the correct return type of those fields at runtime when using an older version of the extension, with some tests are added to cover that. Author: Quan Zongliang Reviewed-by: Michael Paquier, Bharath Rupireddy Discussion: https://postgr.es/m/8b8ec36e-61fe-14f9-005d-07bc85aa4eed@yeah.net
This commit is contained in:
@ -36,5 +36,21 @@ SELECT * FROM bt_page_items('test1_a_idx', 1);
|
||||
1 | (0,1) | 16 | f | f | 01 00 00 00 00 00 00 01 | f | (0,1) |
|
||||
(1 row)
|
||||
|
||||
-- page_header() uses int instead of smallint for lower, upper, special and
|
||||
-- pagesize in pageinspect >= 1.10.
|
||||
ALTER EXTENSION pageinspect UPDATE TO '1.9';
|
||||
\df page_header
|
||||
List of functions
|
||||
Schema | Name | Result data type | Argument data types | Type
|
||||
--------+-------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------
|
||||
public | page_header | record | page bytea, OUT lsn pg_lsn, OUT checksum smallint, OUT flags smallint, OUT lower smallint, OUT upper smallint, OUT special smallint, OUT pagesize smallint, OUT version smallint, OUT prune_xid xid | func
|
||||
(1 row)
|
||||
|
||||
SELECT pagesize, version FROM page_header(get_raw_page('test1', 0));
|
||||
pagesize | version
|
||||
----------+---------
|
||||
8192 | 4
|
||||
(1 row)
|
||||
|
||||
DROP TABLE test1;
|
||||
DROP EXTENSION pageinspect;
|
||||
|
Reference in New Issue
Block a user