copying a large object?

Started by Mario Weilguniover 24 years ago2 messageshackers
Jump to latest
#1Mario Weilguni
mweilguni@sime.com

I'm working on an application where it is necessary to make copies of large
objects, and now I wonder if it is safe
to use this (symbolic, somewhat PHP like) code. Say I've a LOB with OID=1234

$oid = db_exec("select lo_create(....)")
db_exec("delete from pg_largeobject where loid=$oid")
db_exec("insert into pg_largeobject select $oid, pageno, data from
pg_largeobject where loid=1234")

is this a safe way to accomplish this?

And another question regarding large objects, as I see the objects are
organized in units of 2048 bytes each. Can I somehow set this to a higher
value like 8k or 32k (I use 32k pages).

I'm using the latest 7.2 cvs version.

Hope someone of you can help me, thanks!

Best regards,
Mario Weilguni

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Mario Weilguni (#1)
Re: copying a large object?

"mario" <mweilguni@sime.com> writes:

And another question regarding large objects, as I see the objects are
organized in units of 2048 bytes each. Can I somehow set this to a higher
value like 8k or 32k (I use 32k pages).

Then you've already got larger units, because the code is

#define LOBLKSIZE (BLCKSZ / 4)

I don't believe it'd be a good idea to try to make it larger than that,
though you're free to experiment...

regards, tom lane