]> granicus.if.org Git - postgresql/commit
Add toast tables to most system catalogs
authorMichael Paquier <michael@paquier.xyz>
Thu, 19 Jul 2018 22:43:41 +0000 (07:43 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 19 Jul 2018 22:43:41 +0000 (07:43 +0900)
commit96cdeae07f93556df73112456b795d6d35998a0e
tree3e9158e719dd4ae050aa5ebde1ad1886d3178bda
parent24097167558bafbc1ea32f67ea5840e5650ad4e7
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
src/backend/catalog/catalog.c
src/include/catalog/toasting.h
src/test/regress/expected/misc_sanity.out
src/test/regress/sql/misc_sanity.sql