Re: pg_restore 14 skips ACL COLUMN when --schema is used

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Kong Man <kong_mansatiansin@hotmail.com>
Cc: "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2023-07-29T00:24:00Z
Lists: pgsql-bugs
Kong Man <kong_mansatiansin@hotmail.com> writes:
> pg_restore --schema in our script used to work well against pg_restore 10.  Now that we are on PostgreSQL 14.  pg_restore 14 skips ACL COLUMN, but not ACL TABLE, when --schema is used.

That's not the behavior I'm seeing.  Would you mind providing a
*complete* reproducer, not some fragments?

The behavior I'm seeing is that neither a TABLE nor a COLUMN ACL
will be restored, because (since v11) ACLs are restored only
if their table is restored, and the --use-list option you are
using excludes the table.

We could perhaps imagine special-casing that, but I think it would be
a wart, because for every other kind of object --use-list can only
filter stuff out, not filter it in.  (That is, if you are using
--use-list along with other selectivity options, an object must pass
both restrictions to be output.  I don't want to make --use-list
override other rules just for ACLs.)

It would be interesting to see your actual use-case, because
I suspect you may be doing something that there's a better way
to do now.  What set of objects are you trying to extract?

			regards, tom lane



Commits

  1. Fix omission of column-level privileges in selective pg_restore.

  2. Clean up some aspects of pg_dump/pg_restore item-selection logic.