Re: Can we get rid of repeated queries from pg_dump?

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: depesz@depesz.com
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-general <pgsql-general@lists.postgresql.org>
Date: 2021-08-30T14:58:07Z
Lists: pgsql-hackers, pgsql-general
hubert depesz lubaczewski <depesz@depesz.com> writes:
> On Mon, Aug 30, 2021 at 10:11:22AM -0400, Tom Lane wrote:
>> I speculate that it is collecting and then not printing the info
>> about functions that are in extensions --- can you check on
>> how many there are of those?

>          classid         │ count 
> ─────────────────────────┼───────
>  pg_type                 │    31
>  pg_proc                 │  1729
>  pg_class                │    61
>  pg_foreign_data_wrapper │     1
>  pg_cast                 │    30
>  pg_language             │     1
>  pg_opclass              │    73
>  pg_operator             │   111
>  pg_opfamily             │    73
> (9 rows)

Ah-hah.  Those 1729 extension-owned functions account nicely
for the extra probes into pg_proc, and I bet they are causing
the unexplained getFormattedTypeName calls too.  So the
*real* problem here seems to be that we're doing too much
work on objects that are not going to be dumped because they
are extension members.  I'll take a look at that later if
nobody beats me to it.

			regards, tom lane



Commits

  1. In pg_dump, avoid doing per-table queries for RLS policies.

  2. Cache the results of format_type() queries in pg_dump.