Re: Question about todo item - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Question about todo item
Date
Msg-id 200109062036.f86Kaqq21181@candle.pha.pa.us
Whole thread Raw
In response to Re: Question about todo item  (Barry Lind <barry@xythos.com>)
List pgsql-hackers
I have added to TODO:

BINARY DATA       o -Add non-large-object binary field (already exists -- bytea)       o -Make binary interface for
TOASTcolumns (base64)       o Improve vacuum of large objects (/contrib/vacuumlo)       o Add security checking for
largeobjects       o Make file in/out interface for TOAST columns, similar to large object         interface (force
out-of-linestorage and no compression)       o Auto-delete large objects when referencing row is deleted
 

> Can this be added to the TODO list? (actually put back on the TODO list) 
> Along with this email thread?
> 
> I feel that it is very important to have BLOB support in postgres that 
> is similar to what the commercial databases provide.  This could either 
> mean fixing the current implementation or adding additional capabilities 
> to toasted columns.
> 
> The major problem with the current LargeObject implementation is that 
> when the row containing the LargeObject is deleted the LargeObject 
> isn't.  This can be a useful feature under some circumstances, but it 
> isn't how other databases handle BLOBs.  Thus porting code from other 
> databases is a challenge.  While it is true that this can be worked 
> around through triggers, I don't like the manual nature of the workarounds.
> 
> thanks,
> --Barry
> 
> Tom Lane wrote:
> > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > 
> >>>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
> >>>
> > 
> >>I am confused how pg_largeobject is involved?
> >>
> > 
> > s/pg_largeobject/toast_table_for_relation/ ... sorry about that ...
> > 
> > 
> >>Don't forget compression of TOAST columns.  How do you fseek/read/write
> >>in there?
> >>
> > 
> > Well, you can *do* it, just don't expect it to be fast.  The
> > implementation would have to read or write most of the value, not just
> > the segment you wanted.  A person who actually expected to use this
> > stuff would likely want to disable compression on a column he wanted
> > random access within.
> > 
> > Hmm ... that provides an idea.  We could easily add some additional
> > 'attstorage' settings that say *all* values of a column must be forced
> > out-of-line (with or without allowing compression), regardless of size.
> > Then, open_toast_object would work reliably on such a column.  One
> > possible user API to such an infrastructure is to invent BLOB and CLOB
> > datatypes, which are just like bytea and text except that they force the
> > appropriate attstorage value.  Ugly as sin, ain't it ... but I bet it
> > could be made to work.
> > 
> > Okay, there's your idea.  Now, who can do better?
> > 
> >             regards, tom lane
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> > 
> > http://www.postgresql.org/search.mpl
> > 
> > 
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: TRUNCATE question
Next
From: "Oliver Elphick"
Date:
Subject: Re: Inherited Table