From: | Vince Roberts <vroberts(at)emanon(dot)net> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | lo_copy routine |
Date: | 2001-06-12 16:33:51 |
Message-ID: | Pine.BSF.4.21.0106121228310.94611-100000@unix1.emanon.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Here is a basic lo_copy routine
It copies a large object from an existing large object
PG_FUNCTION_INFO_V1(lo_copy);
Datum
lo_copy(PG_FUNCTION_ARGS)
{
Oid oldlobjId = PG_GETARG_OID(0);
LargeObjectDesc *lobj,*oldlobj;
int readbytes,
writebytes;
char buf[BUFSIZE];
Oid lobjOid;
oldlobj = inv_open(oldlobjId, INV_READ);
if (lobj == NULL)
elog(ERROR, "lo_copy: can't open inv object %u", oldlobjId);
lobj = inv_create(INV_READ | INV_WRITE);
if (lobj == NULL)
elog(ERROR, "lo_copy: can't create inv object");
lobjOid = lobj->id;
while ((readbytes = inv_read(oldlobj, buf, BUFSIZE)) > 0)
{
writebytes = inv_write(lobj, buf, readbytes);
if (writebytes != readbytes)
elog(ERROR, "lo_copy: error while copying");
}
inv_close(oldlobj);
inv_close(lobj);
PG_RETURN_OID(lobjOid);
}
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-06-12 16:35:10 | Re: Patch to include PAM support... |
Previous Message | Tom Lane | 2001-06-12 16:32:12 | Re: Patch to include PAM support... |