]> granicus.if.org Git - postgresql/commit
Toast all the system-table columns that seem to need it. It turns out
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 6 Aug 2000 04:40:08 +0000 (04:40 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 6 Aug 2000 04:40:08 +0000 (04:40 +0000)
commitc3e2a951b496f8030442f157b201cbddab5b5662
tree0c58ce0f0e6c5c6d90d110bbc6b47c71b2bc66d3
parent8ae23135bc60df9104b4b8aa1171a7b9b89f4926
Toast all the system-table columns that seem to need it.  It turns out
that giving pg_proc a toast table required solving the same problems
we'd have to solve for pg_class --- pg_proc is one of the relations
that gets bootstrapped in relcache.c.  Solution is to go back at the
end of initialization and read in the *real* pg_class row to replace
the phony entry created by formrdesc().  This should work as long as
there's no need to touch any toasted values during initialization,
which seems a reasonable assumption.
Although I did not add a toast-table for every single system table
with a varlena attribute, I believe that it would work to just do
ALTER TABLE pg_class CREATE TOAST TABLE.  So anyone who's really
intent on having several thousand ACL entries for a rel could do it.
NOTE: I didn't force initdb, but you must do one to see the effects
of this patch.
src/backend/commands/analyze.c
src/backend/utils/cache/relcache.c
src/backend/utils/init/postinit.c
src/bin/initdb/initdb.sh
src/include/catalog/pg_attribute.h
src/include/utils/relcache.h