KaiGai Kohei <kaigai@ak.jp.nec.com> wrote:
> The pg_largeobject system catalog is reworked to manage its metadata.
>
> CATALOG(pg_largeobject,2613)
> {
> Oid loowner; /* OID of the owner */
> Oid lochunk; /* OID of the data chunks */
> aclitem loacl[1]; /* access permissions */
> } FormData_pg_largeobject;
>
> Actual data chunks are stored in the toast relation of pg_largeobject,
> and its chunk_id is stored in the pg_largeobject.lochunk.
A bit acrobatic, but insteresting idea.
I have some random comments:
* Do you measure performance of the new LO implementation? AFAIK, Users expect performance benefits to LO; TOASTed
byteaslows down when the size of data is 100KB or greater even if they don't use random seeks.
* We might take care of DROP ROLE and REASSIGN/DROP OWNED. Or, we might have large object without owner. It might
requirefull-scanning of pg_largeobject table, but we can accept it because the size of pg_largeobject will be
smaller;we have actual data out of the table.
* Don't we also need "ALTER LARGE OBJECT <oid> OWNER TO <user>" for consistency?
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center