Re: Question about todo item

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Jan Wieck <JanWieck(at)Yahoo(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Question about todo item
Date: 2001-08-05 03:11:39
Message-ID: 4825.996981099@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> I keep bugging Jan about it, since pre-7.1 and no one has come up with
> an idea.

Well, if you want an idea:

BEGIN;

SELECT open_toast_object(toastable_column) FROM tab WHERE ...;

-- app checks that it got exactly one result back

-- app lo_reads and/or lo_writes using ID returned by SELECT

END;

Implementation is left as an exercise for the reader ;-).

Offhand this seems like it would be doable for a column-value that
was actually moved out-of-line by TOAST, since the open_toast_object
function could see and return the TOAST pointer, and then the read/
write operations just hack on rows in pg_largeobject. The hard part
is how to provide equivalent functionality (transparent to the client
of course) when the particular value you select has *not* been moved
out-of-line. Ideas anyone?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2001-08-05 03:34:13 Re: Question about todo item
Previous Message Bruce Momjian 2001-08-05 02:41:14 Re: Question about todo item