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

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

Commit: db11b4a3db5f6613c844c1b3a6c203bbceb05532
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2021-08-31T19:04:05Z
Releases: 13.5
In pg_dump, avoid doing per-table queries for RLS policies.

For no particularly good reason, getPolicies() queried pg_policy
separately for each table.  We can collect all the policies in
a single query instead, and attach them to the correct TableInfo
objects using findTableByOid() lookups.  On the regression
database, this reduces the number of queries substantially, and
provides a visible savings even when running against a local
server.

Per complaint from Hubert Depesz Lubaczewski.  Since this is such
a simple fix and can have a visible performance benefit, back-patch
to all supported branches.

Discussion: https://postgr.es/m/20210826084430.GA26282@depesz.com

Files

PathChange+/−
src/bin/pg_dump/pg_dump.c modified +42 −50

Discussion