From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: pageinspect: Fix types used for bt_metap() columns. |
Date: | 2020-03-08 00:45:22 |
Message-ID: | E1jAk4I-0002yq-Uj@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers pgsql-hackers |
pageinspect: Fix types used for bt_metap() columns.
The data types that contrib/pageinspect's bt_metap() function were
declared to return as OUT arguments were wrong in some cases. For
example, the oldest_xact column (a TransactionId/xid field) was declared
integer/int4 within the pageinspect extension's sql file. This led to
errors when an oldest_xact value that exceeded 2^31-1 was encountered.
Some of the other columns were defined incorrectly ever since
pageinspect was first introduced, though they were far less likely to
produce problems in practice.
Fix these issues by changing the declaration of bt_metap() to
consistently use data types that can reliably represent all possible
values. This fixes things on HEAD only. No backpatch, since it doesn't
seem like there is a safe way to fix the issue without including a new
version of the pageinspect extension (HEAD/Postgres 13 already
introduced a new version of the extension). Besides, the oldest_xact
issue has been around since the release of Postgres 11, and we haven't
heard any complaints about it before now.
Also, throw an error when we detect a bt_metap() declaration that must
be from an old version of the pageinspect extension by examining the
number of attributes from the tuple descriptor for the return tuples.
It seems better to throw an error in a reliable and obvious way
following a Postgres upgrade, rather than letting bt_metap() fail
unpredictably. The problem is fundamentally with the CREATE FUNCTION
declared data types themselves, so I see no sensible alternative.
Reported-By: Victor Yegorov
Bug: #16285
Discussion: https://postgr.es/m/16285-df8fc1000ab3d5fc@postgresql.org
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/691e8b2e1889d61df47ae76601fa9db6cbac6f1c
Modified Files
--------------
contrib/pageinspect/btreefuncs.c | 27 +++++++++++++++++++++++----
contrib/pageinspect/pageinspect--1.7--1.8.sql | 12 ++++++------
2 files changed, 29 insertions(+), 10 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2020-03-08 10:35:29 | pgsql: Show opclass and opfamily related information in psql |
Previous Message | Tom Lane | 2020-03-07 21:58:12 | pgsql: Tab completion: offer parens as appropriate in CREATE/ALTER TEXT |
From | Date | Subject | |
---|---|---|---|
Next Message | James Coleman | 2020-03-08 02:07:55 | Re: [PATCH] Incremental sort (was: PoC: Partial sort) |
Previous Message | Tom Lane | 2020-03-07 23:45:44 | Re: range_agg |