Re: Set all variable-length fields of pg_attribute to null on column drop

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-30T16:45:09Z
Lists: pgsql-hackers
On Thu, Nov 30, 2023 at 6:24 AM Peter Eisentraut <peter@eisentraut.org> 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).
>
> I suggest the attached patch to set those fields to null when a column
> is marked as dropped.

I haven't reviewed the patch, but +1 for the idea.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



Commits

  1. Set all variable-length fields of pg_attribute to null on column drop

  2. Support column-level privileges, as required by SQL standard.