pgsql: Add toast tables to most system catalogs - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Add toast tables to most system catalogs
Date
Msg-id E1fgHj9-0001nX-Cm@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Add toast tables to most system catalogs

It has been project policy to create toast tables only for those catalogs
that might reasonably need one.  Since this judgment call can change over
time, just create one for every catalog, as this can be useful when
creating rather-long entries in catalogs, with recent examples being in
the shape of policy expressions or customly-formatted SCRAM verifiers.

To prevent circular dependencies and to avoid adding complexity to VACUUM
FULL logic, exclude pg_class, pg_attribute, and pg_index.  Also, to
prevent pg_upgrade from seeing a non-empty new cluster, exclude
pg_largeobject and pg_largeobject_metadata from the set as large object
data is handled as user data.  Those relations have no reason to use a
toast table anyway.

Author: Joe Conway, John Naylor
Reviewed-by: Michael Paquier, Tom Lane
Discussion: https://postgr.es/m/84ddff04-f122-784b-b6c5-3536804495f8@joeconway.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/96cdeae07f93556df73112456b795d6d35998a0e

Modified Files
--------------
src/backend/catalog/catalog.c             | 18 +++++--
src/include/catalog/toasting.h            | 40 ++++++++++++++--
src/test/regress/expected/misc_sanity.out | 80 +++++++++----------------------
src/test/regress/sql/misc_sanity.sql      | 12 +++--
4 files changed, 82 insertions(+), 68 deletions(-)


pgsql-committers by date:

Previous
From: Alexander Korotkov
Date:
Subject: pgsql: Fix handling of empty uncompressed posting list pages in GIN
Next
From: Michael Paquier
Date:
Subject: pgsql: Bump catalog version for recent toast table additions