Skip to content

COVERAGE & CALIBRATION

Every version checked against a live instance.

From PostgreSQL 9.0 to 19 beta 3, the core pg_catalog tables and views are covered in full. The catalog inventory comes from the source; column structure is checked item by item against the result from a fresh instance.

17 / 17 versions measured · 2032 relation snapshots · 19171 column records. A further 5934 common system-column records are kept separately.

These counts cover every core ordinary catalog table and view in that version, including statistics views, progress views, and the variants that actually exist. Indexes, TOAST tables, functions, catalog data rows, and extension-created objects are not counted as separate catalog tables. Common system attributes such as xmin and ctid stay in each snapshot's system_columns and are not mixed in with ordinary columns.

What this round corrected

The original documentation has its own omissions, spelling slips, and wrong types. The table below keeps the differences between the documentation and the real structure; the source documents were not overwritten. Calibrated types come from format_type on the corresponding release; column names, order, type OIDs, nullability, and array dimensions come from pg_attribute.

28 correction records
VersionColumnsCorrectedDocumentedCalibrated
9.0pg_user.usesysidTypeintegeroid
9.0pg_user_mappings.srvnameTypetextname
9.1pg_shadow.usereplPresencefalsetrue
9.1pg_user.usesysidTypeintegeroid
9.1pg_user.usereplPresencefalsetrue
9.1pg_user_mappings.srvnameTypetextname
9.4pg_replication_slots.databaseTypetextname
9.5pg_replication_slots.databaseTypetextname
9.6pg_replication_slots.databaseTypetextname
10pg_partitioned_table.partcollationReferencepg_opclass.oidpg_collation.oid
10pg_policies.permissiveNamepolpermissivepermissive
10pg_replication_slots.databaseTypetextname
10pg_stat_subscription.subnameTypetextname
11pg_partitioned_table.partcollationReferencepg_opclass.oidpg_collation.oid
11pg_policies.permissiveNamepolpermissivepermissive
11pg_replication_slots.databaseTypetextname
11pg_stat_subscription.subnameTypetextname
12pg_partitioned_table.partcollationReferencepg_opclass.oidpg_collation.oid
12pg_policies.permissiveNamepolpermissivepermissive
12pg_replication_slots.databaseTypetextname
12pg_stat_subscription.subnameTypetextname
12pg_stats_ext.statistics_ownerTypeoidname
12pg_stats_ext.kindsTypetext[]"char"[]
12pg_stats_ext.most_common_valsTypeanyarraytext[]
12pg_stats_ext.most_common_val_nullsTypeanyarrayboolean[]
12pg_stats_ext.most_common_freqsTypereal[]double precision[]
12pg_stats_ext.most_common_base_freqsTypereal[]double precision[]
12pg_stats_ext.statistics_ownerReferencepg_authid.oidpg_authid.rolname

Download the full calibration report · Download the standalone source coverage report · Download the calibrated master data

How these results were produced

Each probe initialises its own extension-free temporary database listening on a private Unix socket only. 9.x and 19 beta 3 are built from the matching release source; 10 through 18 use official community packages of the exact minor version. Every probe result, its SQL, version numbers, build options, and SHA-256 are kept in the project. An offline rebuild reads the archive directly and does not require restarting a database.

9.0 and 9.1 use the semaphore lock option supplied by the original project on ARM64 for compatibility with the older code; compiler compatibility flags and build logs are recorded, and no catalog definition was modified. Cross-version differences are taken per exact release snapshot, with 19 pinned to REL_19_BETA3 rather than a moving development branch.

See the data formats, historical documents, and provenance notes →