Alexander Kass <alexander.kass@xxxxxxxxxxxxx> writes: > I've asked the user to perform `SELECT xmin, * from pg_attribute WHERE > attrelid = 'pg_catalog.pg_database'::regclass` to check the > attributes. > The user has sent me that a couple of times: both times xmin is > different, attrelid is different, both have a big value. > Does that mean that pg_database is recreated? > Also system attributes are different. My result looks like: > ... > His result (apart from dat* attributes) contains only tableoid and > oid. Also his attnum numeration starts from tableoid = 1, oid = 2, > datname = 3 > I'm puzzled It's pretty hard to read these details and not conclude that somebody has been manually manipulating that catalog. Missing rows might possibly be explained by index corruption ... but there is no scenario under which pg_database could have an OID different from 1262, nor could this change of attnums for the surviving rows ever have happened via Postgres-internal processes. I'm about ready to file this under "you broke it, you get to keep both pieces". regards, tom lane