Thread: Problem with pg_attribute.attstorage for pg_class.relacl

Problem with pg_attribute.attstorage for pg_class.relacl

From
Bruce Momjian
Date:
pg_class.relacl is of type aclitem[] and has a pg_attribute.attstorage
of 'x', even though it doesn't support TOAST expansion:grant select on t1 to foo1,foo2,foo3,foo4, ...(10k of items)
ERROR: Tuple is too big: size 32684, max size 813
 

Is it 'x' to be consistent with other aclitem[] instances, but can't use
TOAST because it is part of the pg_class system cache?  Should we modify
pg_attribute.h to make it not an 'x'?

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: Problem with pg_attribute.attstorage for pg_class.relacl

From
Tom Lane
Date:
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> pg_class.relacl is of type aclitem[] and has a pg_attribute.attstorage
> of 'x', even though it doesn't support TOAST expansion:

It can't be toasted because pg_class hasn't got a toast table.  I can't
recall at the moment whether there's a fundamental reason for that or
it's just an oversight.

> Should we modify pg_attribute.h to make it not an 'x'?

No, because that would not improve the error message.  All it would do
is prevent relacl from making use of a pg_class toast table, when and if
we get around to adding one.
        regards, tom lane