Re: missing toast table for pg_policy - Mailing list pgsql-hackers

From Joe Conway
Subject Re: missing toast table for pg_policy
Date
Msg-id ffa8552e-7517-01bd-9318-69c85f20754c@joeconway.com
Whole thread Raw
In response to Re: missing toast table for pg_policy  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: missing toast table for pg_policy  (Joe Conway <mail@joeconway.com>)
List pgsql-hackers
On 02/18/2018 11:18 AM, Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>> Is there really a compelling reason to not just create toast tables for
>> all system catalogs as in the attached?
>
> What happens when you VACUUM FULL pg_class?  (The associated toast table
> would have to be nonempty for the test to prove much.)

I tried this:
create table foo (id int);
do $$declare i int; begin for i in 1..1000 loop execute 'create user u'
|| i; end loop; end;$$;
do $$declare i int; begin for i in 1..1000 loop execute 'grant all on
foo to u' || i; end loop; end;$$;
vacuum full pg_class;

Worked without issue FWIW.

> I'm fairly suspicious of toasting anything that the toast mechanism itself
> depends on, actually, and that would include at least pg_attribute and
> pg_index as well as pg_class.  Maybe we could get away with it because
> there would never be any actual recursion only potential recursion ...
> but it seems scary.

Well that is the other approach we could pursue -- instead of justifying
which system catalogs need toast tables we could create an exclusion
list of which ones should not have toast tables, with the current
candidates being pg_class, pg_attribute, and pg_index.

Joe

--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development


Attachment

pgsql-hackers by date:

Previous
From: Dmitry Dolgov
Date:
Subject: Re: [HACKERS] Bug in to_timestamp().
Next
From: Michael Paquier
Date:
Subject: Re: [HACKERS] Cache lookup errors with functions manipulation objectaddresses