Re: BLOBs

Thomas Swan <tswan@olemiss.edu>

From: Thomas Swan <tswan@olemiss.edu>
To: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2001-06-12T22:19:46Z
Lists: pgsql-hackers
Bruce Momjian wrote:

>>Thomas Swan <tswan@olemiss.edu> writes:
>>
>>>I know that BLOBs are on the TODO list, but I had an idea.
>>>
>>I think you just rediscovered TOAST.
>>
>
>We have TOAST and people want to keep large objects for performance.  I
>think we could us an API that allows TOAST binary access and large
>object access using the same API, and hopefully an improved one.
>
I think I missed what I was trying to say in my original statement.  I 
think there's a way to use the existing API with performance benefits 
left intact.

Take for example the table :
create table foo {
    foo_id serial,
    foo_name varchar(32),
    foo_object BLOB,
);

On the insert statement "insert into foo (foo_name,foo_object) values 
('My Object','{some escaped arbitrary string of binary data}');", flush 
the {some escaped arbitrary string of binary data} to disk as a 
temporary file.  Then do the lo_import operation transparent to the user.

On a select, do the same thing (transparently) and return the data back 
to user.

Personally, I like LO's being stored separately from the actual table.