pg_catcheck

pg_catcheck

pg_catcheck : Diagnosing system catalog corruption

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
5160
pg_catcheck
pg_catcheck
1.6.0
ADMIN
BSD 3-Clause
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
See Also
pg_checksums
amcheck
pg_surgery
pageinspect
pg_visibility
pgstattuple
ddlx
pgdd

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PGDG
1.6.0
18
17
16
15
14
pg_catcheck-
RPM
PGDG
1.6.0
18
17
16
15
14
pg_catcheck_$v-
DEB
PGDG
1.6.0
18
17
16
15
14
postgresql-$v-pg-catcheck-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
el8.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
el9.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
el9.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
el10.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
el10.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
d12.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
d12.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
d13.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
d13.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
u22.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
u22.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
u24.x86_64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
u24.aarch64
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PGDG 1.6.0
PackageVersionOSORGSIZEFile URL
pg_catcheck_171.6.0el8.x86_64pgdg43.3 KiBpg_catcheck_17-1.6.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_171.5.0el8.x86_64pgdg43.1 KiBpg_catcheck_17-1.5.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_171.6.0el8.aarch64pgdg42.5 KiBpg_catcheck_17-1.6.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_171.5.0el8.aarch64pgdg42.4 KiBpg_catcheck_17-1.5.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_171.6.0el9.x86_64pgdg37.9 KiBpg_catcheck_17-1.6.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_171.5.0el9.x86_64pgdg37.7 KiBpg_catcheck_17-1.5.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_171.6.0el9.aarch64pgdg37.3 KiBpg_catcheck_17-1.6.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_171.5.0el9.aarch64pgdg37.1 KiBpg_catcheck_17-1.5.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_171.6.0el10.x86_64pgdg38.9 KiBpg_catcheck_17-1.6.0-3PGDG.rhel10.x86_64.rpm
pg_catcheck_171.6.0el10.aarch64pgdg38.6 KiBpg_catcheck_17-1.6.0-3PGDG.rhel10.aarch64.rpm
postgresql-17-pg-catcheck1.6.0d12.x86_64pgdg34.4 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg12+1_amd64.deb
postgresql-17-pg-catcheck1.6.0d12.aarch64pgdg33.4 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg12+1_arm64.deb
postgresql-17-pg-catcheck1.6.0d13.x86_64pgdg34.8 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg13+1_amd64.deb
postgresql-17-pg-catcheck1.6.0d13.aarch64pgdg33.7 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg13+1_arm64.deb
postgresql-17-pg-catcheck1.6.0u22.x86_64pgdg35.6 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg22.04+1_amd64.deb
postgresql-17-pg-catcheck1.6.0u22.aarch64pgdg33.6 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg22.04+1_arm64.deb
postgresql-17-pg-catcheck1.6.0u24.x86_64pgdg35.3 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg24.04+1_amd64.deb
postgresql-17-pg-catcheck1.6.0u24.aarch64pgdg33.7 KiBpostgresql-17-pg-catcheck_1.6.0-2.pgdg24.04+1_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_catcheck_161.6.0el8.x86_64pgdg43.3 KiBpg_catcheck_16-1.6.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_161.4.0el8.x86_64pgdg43.1 KiBpg_catcheck_16-1.4.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_161.6.0el8.aarch64pgdg42.6 KiBpg_catcheck_16-1.6.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_161.4.0el8.aarch64pgdg42.3 KiBpg_catcheck_16-1.4.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_161.6.0el9.x86_64pgdg37.9 KiBpg_catcheck_16-1.6.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_161.4.0el9.x86_64pgdg37.5 KiBpg_catcheck_16-1.4.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_161.6.0el9.aarch64pgdg37.3 KiBpg_catcheck_16-1.6.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_161.4.0el9.aarch64pgdg36.9 KiBpg_catcheck_16-1.4.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_161.6.0el10.x86_64pgdg38.9 KiBpg_catcheck_16-1.6.0-3PGDG.rhel10.x86_64.rpm
pg_catcheck_161.6.0el10.aarch64pgdg38.6 KiBpg_catcheck_16-1.6.0-3PGDG.rhel10.aarch64.rpm
postgresql-16-pg-catcheck1.6.0d12.x86_64pgdg34.4 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg12+1_amd64.deb
postgresql-16-pg-catcheck1.6.0d12.aarch64pgdg33.4 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg12+1_arm64.deb
postgresql-16-pg-catcheck1.6.0d13.x86_64pgdg34.8 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg13+1_amd64.deb
postgresql-16-pg-catcheck1.6.0d13.aarch64pgdg34.1 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg13+1_arm64.deb
postgresql-16-pg-catcheck1.6.0u22.x86_64pgdg35.5 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg22.04+1_amd64.deb
postgresql-16-pg-catcheck1.6.0u22.aarch64pgdg33.6 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg22.04+1_arm64.deb
postgresql-16-pg-catcheck1.6.0u24.x86_64pgdg35.3 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg24.04+1_amd64.deb
postgresql-16-pg-catcheck1.6.0u24.aarch64pgdg33.7 KiBpostgresql-16-pg-catcheck_1.6.0-2.pgdg24.04+1_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_catcheck_151.6.0el8.x86_64pgdg43.2 KiBpg_catcheck_15-1.6.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_151.3.0el8.x86_64pgdg42.8 KiBpg_catcheck_15-1.3.0-1.rhel8.x86_64.rpm
pg_catcheck_151.6.0el8.aarch64pgdg42.5 KiBpg_catcheck_15-1.6.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_151.3.0el8.aarch64pgdg41.9 KiBpg_catcheck_15-1.3.0-1.rhel8.aarch64.rpm
pg_catcheck_151.6.0el9.x86_64pgdg37.9 KiBpg_catcheck_15-1.6.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_151.3.0el9.x86_64pgdg37.7 KiBpg_catcheck_15-1.3.0-1.rhel9.x86_64.rpm
pg_catcheck_151.6.0el9.aarch64pgdg37.3 KiBpg_catcheck_15-1.6.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_151.3.0el9.aarch64pgdg37.0 KiBpg_catcheck_15-1.3.0-1.rhel9.aarch64.rpm
pg_catcheck_151.6.0el10.x86_64pgdg38.9 KiBpg_catcheck_15-1.6.0-3PGDG.rhel10.x86_64.rpm
pg_catcheck_151.6.0el10.aarch64pgdg38.6 KiBpg_catcheck_15-1.6.0-3PGDG.rhel10.aarch64.rpm
postgresql-15-pg-catcheck1.6.0d12.x86_64pgdg34.4 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg12+1_amd64.deb
postgresql-15-pg-catcheck1.6.0d12.aarch64pgdg33.4 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg12+1_arm64.deb
postgresql-15-pg-catcheck1.6.0d13.x86_64pgdg34.8 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg13+1_amd64.deb
postgresql-15-pg-catcheck1.6.0d13.aarch64pgdg33.9 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg13+1_arm64.deb
postgresql-15-pg-catcheck1.6.0u22.x86_64pgdg35.5 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg22.04+1_amd64.deb
postgresql-15-pg-catcheck1.6.0u22.aarch64pgdg33.6 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg22.04+1_arm64.deb
postgresql-15-pg-catcheck1.6.0u24.x86_64pgdg35.2 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg24.04+1_amd64.deb
postgresql-15-pg-catcheck1.6.0u24.aarch64pgdg33.6 KiBpostgresql-15-pg-catcheck_1.6.0-2.pgdg24.04+1_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_catcheck_141.6.0el8.x86_64pgdg41.6 KiBpg_catcheck_14-1.6.0-1PGDG.rhel8.x86_64.rpm
pg_catcheck_141.3.0el8.x86_64pgdg41.0 KiBpg_catcheck_14-1.3.0-1.rhel8.x86_64.rpm
pg_catcheck_141.2.0el8.x86_64pgdg40.9 KiBpg_catcheck_14-1.2.0-3.rhel8.x86_64.rpm
pg_catcheck_141.6.0el8.aarch64pgdg41.2 KiBpg_catcheck_14-1.6.0-1PGDG.rhel8.aarch64.rpm
pg_catcheck_141.3.0el8.aarch64pgdg40.6 KiBpg_catcheck_14-1.3.0-1.rhel8.aarch64.rpm
pg_catcheck_141.6.0el9.x86_64pgdg37.6 KiBpg_catcheck_14-1.6.0-1PGDG.rhel9.x86_64.rpm
pg_catcheck_141.3.0el9.x86_64pgdg37.7 KiBpg_catcheck_14-1.3.0-1.rhel9.x86_64.rpm
pg_catcheck_141.6.0el9.aarch64pgdg37.0 KiBpg_catcheck_14-1.6.0-1PGDG.rhel9.aarch64.rpm
pg_catcheck_141.3.0el9.aarch64pgdg37.1 KiBpg_catcheck_14-1.3.0-1.rhel9.aarch64.rpm
pg_catcheck_141.6.0el10.x86_64pgdg38.4 KiBpg_catcheck_14-1.6.0-3PGDG.rhel10.x86_64.rpm
pg_catcheck_141.6.0el10.aarch64pgdg38.1 KiBpg_catcheck_14-1.6.0-3PGDG.rhel10.aarch64.rpm
postgresql-14-pg-catcheck1.6.0d12.x86_64pgdg33.9 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg12+1_amd64.deb
postgresql-14-pg-catcheck1.6.0d12.aarch64pgdg32.9 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg12+1_arm64.deb
postgresql-14-pg-catcheck1.6.0d13.x86_64pgdg34.0 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg13+1_amd64.deb
postgresql-14-pg-catcheck1.6.0d13.aarch64pgdg33.2 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg13+1_arm64.deb
postgresql-14-pg-catcheck1.6.0u22.x86_64pgdg34.6 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg22.04+1_amd64.deb
postgresql-14-pg-catcheck1.6.0u22.aarch64pgdg33.0 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg22.04+1_arm64.deb
postgresql-14-pg-catcheck1.6.0u24.x86_64pgdg34.5 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg24.04+1_amd64.deb
postgresql-14-pg-catcheck1.6.0u24.aarch64pgdg33.2 KiBpostgresql-14-pg-catcheck_1.6.0-2.pgdg24.04+1_arm64.deb

Source

Install

Make sure PGDG repo available:

pig repo add pgdg -u    # add pgdg repo and update cache

Install this extension with pig:

pig install pg_catcheck;		# install via package name, for the active PG version

pig install pg_catcheck -v 18;   # install for PG 18
pig install pg_catcheck -v 17;   # install for PG 17
pig install pg_catcheck -v 16;   # install for PG 16
pig install pg_catcheck -v 15;   # install for PG 15
pig install pg_catcheck -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pg_catcheck;

Usage

pg_catcheck: Diagnosing system catalog corruption

pg_catcheck is a command-line tool that checks PostgreSQL system catalogs for corruption by verifying cross-references between catalog tables. It accepts the same connection parameters as other PostgreSQL utilities (-h, -p, -U, -d).

Basic Usage

pg_catcheck -h localhost -p 5432 -d mydb

Normal output when no issues are found:

progress: done (0 inconsistencies, 0 warnings, 0 errors)

Example Output with Corruption

notice: pg_class row has invalid relnamespace "24580": no matching entry in pg_namespace
row identity: oid="24581" relname="foo" relkind="r"
notice: pg_type row has invalid typnamespace "24580": no matching entry in pg_namespace
row identity: oid="24583"
progress: done (4 inconsistencies, 0 warnings, 0 errors)

Result Categories

  • Inconsistencies: logical problems in catalog cross-references (e.g., dangling OID references)
  • Warnings: more serious issues
  • Errors: inability to read catalogs

Options

pg_catcheck --help                      # Full list of options
pg_catcheck --select-from-relations     # Also check for missing/inaccessible relation files

Connection

Supports the same options as psql: -h host, -p port, -U user, -d database, or connection strings/URLs.

Last updated on