Thread: pgsql: Postpone calls of unsafe server-side functions in pg_dump.

pgsql: Postpone calls of unsafe server-side functions in pg_dump.

From
Tom Lane
Date:
Postpone calls of unsafe server-side functions in pg_dump.

Avoid calling pg_get_partkeydef(), pg_get_expr(relpartbound),
and regtypeout until we have lock on the relevant tables.
The existing coding is at serious risk of failure if there
are any concurrent DROP TABLE commands going on --- including
drops of other sessions' temp tables.

Arguably this is a bug fix that should be back-patched, but it's
moderately invasive and we've not had all that many complaints
about such failures.  Let's just put it in HEAD for now.

Discussion: https://postgr.es/m/2273648.1634764485@sss.pgh.pa.us
Discussion: https://postgr.es/m/7d7eb6128f40401d81b3b7a898b6b4de@W2012-02.nidsa.loc

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e3fcbbd623b9ccc16cdbda374654d91a4727d173

Modified Files
--------------
src/bin/pg_dump/pg_dump.c | 93 ++++++++++++++++++++++++++++++++---------------
src/bin/pg_dump/pg_dump.h |  4 +-
2 files changed, 64 insertions(+), 33 deletions(-)