]> 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)
commite0a0cc28d0829bea5d339fc2db6ac26ea13d5ab4
tree17243aa2c2aa451cb4f3f88cb62aeda5e86a973d
parent8cff4f5348d075e063100071013f00a900c32b0f
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