On 02/18/2018 11:18 AM, Tom Lane wrote: > Joe Conway <m...@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
signature.asc
Description: OpenPGP digital signature