Thread: JDBC and Blobs
Hi, I have a field in my database table of type OID which is suppose to be used to store binary data. I plan on using the setBlob and getBlob methods for storing and retrieving entries from the table. Is that the right way to proceed? If I delete a row in that table , will it delete the binary data as well from the database server? cheers /Dev |
Dev wrote: > Hi, > > I have a field in my database table of type OID which is suppose to be used to store binary data. I plan on using the setBloband getBlob methods for storing and retrieving entries from the table. Is that the right way to proceed? If I deletea row in that table , will it delete the binary data as well from the database server? I haven't used it myself, but my understanding is that deleting the row will NOT free the associated blob. The oid is only a reference to the blob. You probably want the `lo' contrib module: http://www.postgresql.org/docs/8.3/static/lo.html -- Craig Ringer
Dev wrote: > I have a field in my database table of type OID which is > suppose to be used to store binary data. I plan on using the > setBlob and getBlob methods for storing and retrieving > entries from the table. Is that the right way to proceed? If > I delete a row in that table , will it delete the binary data > as well from the database server? No; the best way would be to create a trigger on the table that will delete the large object if you delete (or change) the OID in the table row. This is of course only practical if the same large object is not referenced by more than one table... Yours, Laurenz Albe
"Albe Laurenz" <laurenz.albe@wien.gv.at> writes: > Dev wrote: >> If I delete a row in that table , will it delete the binary data >> as well from the database server? > No; the best way would be to create a trigger on the table that > will delete the large object if you delete (or change) the > OID in the table row. See contrib/lo rather than reinventing that wheel for yourself ... regards, tom lane
Dev wrote:
The JDBC driver should take care of creating and deleting the underlying LO. However, with PG, the deleted LO isn't physically removed until you run contrib/vacuumlo. We include vacuumlo in our daily db maintenance routines (pg_dump, vacuum, analyze, vacuumlo).
I have a field in my database table of type OID which is suppose to be used to store binary data. I plan on using the setBlob and getBlob methods for storing and retrieving entries from the table. Is that the right way to proceed? If I delete a row in that table , will it delete the binary data as well from the database server?
David
Hi all, Thanx for the responses. Looks like contrib/lo is the way to go ! cheers /Dev --- On Thu, 6/19/08, David Wall <d.wall@computer.org> wrote: From: David Wall <d.wall@computer.org> |