Hi, On 2018-07-30 17:21:25 -0400, Melvin Davidson wrote: > * >it has never been the case that relhaspkey meant that the table > *currently* has a primary key. * > *Hmmm, I guess it's a lot harder to fix "squishy semantics"from "True > if the table has (or once had) a primary key" to "True if the table has > a primary key after vacuum"rather than just dropping a column that has > existed from version 7.2.So now I guess the policy is break code instead of > fix documention.That meakes sense...NOT!* A large portion of the system catalogs (i.e. objects within pg_catalog.*) are essentially internal implementation details and we'll change them if it makes our live easier. If you want stability use information_schema which we'll try very hard to not ever break. Keeping random atavistic things around, would slow us down, which will be a price everybody is paying. Greetings, Andres Freund