]> granicus.if.org Git - postgresql/commit
Make pg_restore's identify_locking_dependencies() more bulletproof.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 28 Aug 2018 23:46:59 +0000 (19:46 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 28 Aug 2018 23:46:59 +0000 (19:46 -0400)
commit49841edcc6440ccfe8cab2a2f478edadc9a0b266
treeac216cff88b158dca331940207a548be23955925
parent18f6258e5ee8ea8d9c06bd58655cf8c6e4f1016f
Make pg_restore's identify_locking_dependencies() more bulletproof.

This function had a blacklist of dump object types that it believed
needed exclusive lock ... but we hadn't maintained that, so that it
was missing ROW SECURITY, POLICY, and INDEX ATTACH items, all of
which need (or should be treated as needing) exclusive lock.

Since the same oversight seems likely in future, let's reverse the
sense of the test so that the code has a whitelist of safe object
types; better to wrongly assume a command can't be run in parallel
than the opposite.  Currently the only POST_DATA object type that's
safe is CREATE INDEX ... and that list hasn't changed in a long time.

Back-patch to 9.5 where RLS came in.

Discussion: https://postgr.es/m/11450.1535483506@sss.pgh.pa.us
src/bin/pg_dump/pg_backup_archiver.c