Clean out column-level pg_init_privs entries when dropping tables.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 9cf4beb9e7adf3225c33df256c4e7d54805ec4f8
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-06-14T20:20:35Z
Releases: 16.4
Clean out column-level pg_init_privs entries when dropping tables.

DeleteInitPrivs did not get the memo about how, when dropping a
whole object (with subid == 0), you should drop entries relating
to its sub-objects too.  This is visible in the test_pg_dump test
case if one drops the extension at the end: the entry for
	GRANT SELECT(col1) ON regress_pg_dump_table TO public;
was still present in pg_init_privs afterwards, although it was
pointing to a dangling table OID.

Noted while fooling with a fix for REASSIGN OWNED for pg_init_privs
entries.  This bug is aboriginal in the pg_init_privs feature
though, and there seems no reason not to back-patch the fix.

Files