Excerpts from Tom Lane's message of vie oct 28 15:37:43 -0300 2011:
> The main concern I had about detoast before caching is the risk of
> circularity, ie, needing detoastable cache entries in order to figure
> out how to detoast. But I think it's probably okay. The current list
> of catalogs with toast tables is
>
> pg_attrdef
> pg_constraint
> pg_database
> pg_db_role_setting
> pg_description
> pg_proc
> pg_rewrite
> pg_seclabel
> pg_shdescription
> pg_statistic
> pg_trigger
>
> Of these, only pg_proc is even conceivably consulted during a toast
> table fetch, and we can be sure that functions needed for such a fetch
> don't have toasted entries. But we will have to be very wary of any
> future proposal for adding a toast table to pg_class, pg_index, etc.
BTW we had previous discussions about dropping pg_database's toast
table. Maybe this is a good time to do it, even if there's no risk of
this bug (or the hypothetical circularity detoasting problem) showing up
there.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support