postgresql/contrib/pageinspect
Peter Geoghegan c788115b5e Paper over bt_metap() oldest_xact bug in backbranches.
The data types that contrib/pageinspect's bt_metap() function were
declared to return as OUT arguments were wrong in some cases.  In
particular, 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.

We cannot fix the declaration on Postgres 11 or 12.  All we can do is
ameliorate the problem.  Use "%d" instead of "%u" to format the output
of the oldest_xact value.  This makes the C code match the declaration,
suppressing unhelpful error messages that might otherwise make
bt_metap() totally unusable.  A bogus negative oldest_xact value will be
displayed instead of raising an error.

This commit addresses the same issue as master branch commit 691e8b2e18,
which actually fixed the problem.  Backpatch to the 11 and 12 branches
only, since they are the only branches (other than master) that have
oldest_xact.  All of the other problematic columns already display bogus
output for out of range values.

Reported-By: Victor Yegorov
Bug: #16285
Discussion: https://postgr.es/m/20200309223557.aip5n6ewln4ixbbi@alap3.anarazel.de
Backpatch: 11 and 12 only
2020-03-11 14:15:00 -07:00
..
expected pgstatindex, pageinspect: handle partitioned indexes 2018-05-09 14:22:59 -03:00
sql pgstatindex, pageinspect: handle partitioned indexes 2018-05-09 14:22:59 -03:00
.gitignore pageinspect: Add tests 2016-11-01 14:02:16 -04:00
Makefile Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
brinfuncs.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
btreefuncs.c Paper over bt_metap() oldest_xact bug in backbranches. 2020-03-11 14:15:00 -07:00
fsmfuncs.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
ginfuncs.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
hashfuncs.c Clean up warnings from -Wimplicit-fallthrough. 2018-05-01 19:35:08 -04:00
heapfuncs.c Fix tuple_data_split() to not open a relation without any lock. 2018-10-01 11:51:07 -04:00
pageinspect--1.0--1.1.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pageinspect--1.1--1.2.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pageinspect--1.2--1.3.sql pageinspect/BRIN: minor tweaks 2014-12-02 12:20:50 -03:00
pageinspect--1.3--1.4.sql Add forgotten file in commit d6061f83a1 2015-11-25 16:59:07 +03:00
pageinspect--1.4--1.5.sql Update pageinspect extension for parallel query. 2016-06-09 17:18:09 -04:00
pageinspect--1.5--1.6.sql pageinspect: Add bt_page_items function with bytea argument 2017-04-04 23:52:55 -04:00
pageinspect--1.5.sql Update pageinspect extension for parallel query. 2016-06-09 17:18:09 -04:00
pageinspect--1.6--1.7.sql Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
pageinspect--unpackaged--1.0.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pageinspect.control Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
pageinspect.h Update copyright for 2018 2018-01-02 23:30:12 -05:00
rawpage.c pgstatindex, pageinspect: handle partitioned indexes 2018-05-09 14:22:59 -03:00