Re: Set all variable-length fields of pg_attribute to null on column drop
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-12-22T09:05:54Z
Lists: pgsql-hackers
On 2023-Nov-30, Peter Eisentraut wrote: > I noticed that when a column is dropped, RemoveAttributeById() clears out > certain fields in pg_attribute, but it leaves the variable-length fields at > the end (attacl, attoptions, and attfdwoptions) unchanged. This is probably > harmless, but it seems wasteful and unclean, and leaves potentially dangling > data lying around (for example, attacl could contain references to users > that are later also dropped). Yeah, this looks like an ancient oversight -- when DROP COLUMN was added we didn't have any varlena fields in this catalog, and when the first one was added (attacl in commit 3cb5d6580a33) resetting it on DROP COLUMN was overlooked. LGTM. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "No hay ausente sin culpa ni presente sin disculpa" (Prov. francés)
Commits
-
Set all variable-length fields of pg_attribute to null on column drop
- 3e2e0d5ad7fc 17.0 landed
-
Support column-level privileges, as required by SQL standard.
- 3cb5d6580a33 8.4.0 cited