Re: BUG #16285: bt_metap fails with value is out of range for type integer

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Victor Yegorov <vyegorov@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-03-09T22:09:30Z
Lists: pgsql-bugs
Hi,

On 2020-03-07 16:45:27 -0800, Peter Geoghegan wrote:
> On Fri, Mar 6, 2020 at 2:23 PM Peter Geoghegan <pg@bowt.ie> wrote:
> > This has to be the oldest_xact field. If it was any of the other
> > fields, the "%d" format would not result in an error (it would just
> > result in incorrectly displaying a negative integer). oldest_xact is
> > the only field that uses "%u" (unfortunately, the declaration makes
> > the field an int4/integer, so you may see this error).
> 
> Pushed a fix for this just now.
> 
> Thanks for the report!

ISTM that we need some fix for the back-branches too. Being unable to
look at some indexes till 12 has aged out doesn't strike me as good.

How about simply printing the wrapped value? That's far from perfect, of
course, but clearly better than the current situation in the back
branches.

Greetings,

Andres Freund



Commits

  1. Paper over bt_metap() oldest_xact bug in backbranches.

  2. pageinspect: Fix types used for bt_metap() columns.

  3. Skip full index scan during cleanup of B-tree indexes when possible

  4. pg_stat_statements: Widen query IDs from 32 bits to 64 bits.