Fix confusion about data type of pg_class.relpages and relallvisible.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 9de2cc455eb9c60dda979c32985df967522a8ab2
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2025-02-24T16:16:04Z
Releases: 18.0
Fix confusion about data type of pg_class.relpages and relallvisible.

Although they're exposed as int4 in pg_class, relpages and
relallvisible are really of type BlockNumber, that is uint32.
Correct type puns in relation_statistics_update() and remove
inappropriate range-checks.  The type puns are only cosmetic
issues, but the range checks would cause failures with huge
relations.

Reported-by: Tom Lane <tgl@sss.pgh.pa.us>
Author: Corey Huinker <corey.huinker@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/614341.1740269035@sss.pgh.pa.us

Files

PathChange+/−
src/backend/statistics/relation_stats.c modified +13 −40

Discussion