pgsql: Add toast tables to most system catalogs

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add toast tables to most system catalogs
Date: 2018-07-19 22:48:51
Message-ID: E1fgHj9-0001nX-Cm@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2018-07-20 00:32:59 pgsql: Bump catalog version for recent toast table additions
Previous Message Alexander Korotkov 2018-07-19 20:28:44 pgsql: Fix handling of empty uncompressed posting list pages in GIN