>> It is really strange. It would be nice to have reproduce scenario. Can you >> run same DDL command which invoke a catalog corruption on test database >> cluster?
> I tried it on a fresh instance but it went through with no errors :(
Is it possible that anything was doing a VACUUM FULL on pg_class concurrently with your schema changes on these tables? The behavior looks suspiciously like some problems we've seen before wherein rows ended up with the wrong commit-bit markings...
I may have had a VACUUM FULL on some of my own tables but definitely not on any system tables. There was also a bunch (maybe 10) autovacuum processes working at that time.