Thread: pgsql: Use PREPARE/EXECUTE for repetitive per-object queries in pg_dump

pgsql: Use PREPARE/EXECUTE for repetitive per-object queries in pg_dump

From
Tom Lane
Date:
Use PREPARE/EXECUTE for repetitive per-object queries in pg_dump.

For objects such as functions, pg_dump issues the same secondary
data-collection query against each object to be dumped.  This can't
readily be refactored to avoid the repetitive queries, but we can
PREPARE these queries to reduce planning costs.

This patch applies the idea to functions, aggregates, operators, and
data types.  While it could be carried further, the remaining sorts of
objects aren't likely to appear in typical databases enough times to
be worth worrying over.  Moreover, doing the PREPARE is likely to be a
net loss if there aren't at least some dozens of objects to apply the
prepared query to.

Discussion: https://postgr.es/m/7d7eb6128f40401d81b3b7a898b6b4de@W2012-02.nidsa.loc

Branch
------
master

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

Modified Files
--------------
src/bin/pg_dump/pg_backup.h |  20 +
src/bin/pg_dump/pg_dump.c   | 878 ++++++++++++++++++++++++++------------------
2 files changed, 532 insertions(+), 366 deletions(-)