postgresql/src/bin
Tom Lane ea9125304d Avoid trying to restore table ACLs and per-column ACLs in parallel.
Parallel pg_restore has always supposed that ACL items for different
objects are independent and can be restored in parallel without
conflicts.  However, there is one case where this fails: because
REVOKE on a table is defined to also revoke the privilege(s) at
column level, we can't restore per-column ACLs till after we restore
any table-level privileges on their table.  Failure to honor this
restriction can lead to "tuple concurrently updated" errors during
parallel restore, or even to the per-column ACLs silently disappearing
because the table-level REVOKE is executed afterwards.

To fix, add a dependency from each column-level ACL item to its table's
ACL item, if there is one.  Note that this doesn't fix the hazard
for pre-existing archive files, only for ones made with a corrected
pg_dump.  Given that the bug's been there quite awhile without
field reports, I think this is acceptable.

This requires changing the API of pg_dump's dumpACL() function.
To keep its argument list from getting even longer, I removed the
"CatalogId objCatId" argument, which has been unused for ages.

Per report from Justin Pryzby.  Back-patch to all supported branches.

Discussion: https://postgr.es/m/20200706050129.GW4107@telsasoft.com
2020-07-11 13:36:50 -04:00
..
initdb Change default of password_encryption to scram-sha-256 2020-06-10 16:42:55 +02:00
pg_archivecleanup Translation updates 2020-05-18 12:49:30 +02:00
pg_basebackup code: replace 'master' with 'primary' where appropriate. 2020-07-08 12:57:23 -07:00
pg_checksums Translation updates 2020-05-18 12:49:30 +02:00
pg_config Translation updates 2020-05-18 12:49:30 +02:00
pg_controldata Translation updates 2020-05-18 12:49:30 +02:00
pg_ctl Add test coverage for pg_current_logfile() function. 2020-07-08 13:41:52 -04:00
pg_dump Avoid trying to restore table ACLs and per-column ACLs in parallel. 2020-07-11 13:36:50 -04:00
pg_resetwal Translation updates 2020-05-18 12:49:30 +02:00
pg_rewind Tighten up Windows CRLF conversion in our TAP test scripts. 2020-07-08 20:25:52 -04:00
pg_test_fsync Translation updates 2020-05-18 12:49:30 +02:00
pg_test_timing Translation updates 2020-05-18 12:49:30 +02:00
pg_upgrade pg_upgrade: set vacuum_defer_cleanup_age to zero 2020-06-15 20:59:40 -04:00
pg_verifybackup tap tests: replace 'master' with 'primary'. 2020-07-08 12:39:56 -07:00
pg_waldump Translation updates 2020-05-18 12:49:30 +02:00
pgbench Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
pgevent
psql Rethink definition of cancel.c's CancelRequested flag. 2020-06-07 13:07:34 -04:00
scripts Add --no-index-cleanup and --no-truncate to vacuumdb. 2020-06-22 13:23:38 +09:00
Makefile Rename pg_validatebackup to pg_verifybackup. 2020-04-12 11:26:05 -04:00