Problem with pg_attribute.attstorage for pg_class.relacl

Started by Bruce Momjianover 22 years ago2 messages
#1Bruce Momjian
pgman@candle.pha.pa.us

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, Pennsylvania 19073
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#1)
Re: Problem with pg_attribute.attstorage for pg_class.relacl

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