|
|
|
|
@ -9,7 +9,7 @@ |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.81 2001/01/21 03:49:14 momjian Exp $ |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.82 2001/01/21 03:50:25 momjian Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
|
@ -64,9 +64,6 @@ inv_create(int flags) |
|
|
|
|
Oid file_oid; |
|
|
|
|
LargeObjectDesc *retval; |
|
|
|
|
|
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_create: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Allocate an OID to be the LO's identifier. |
|
|
|
|
*/ |
|
|
|
|
@ -120,9 +117,6 @@ inv_open(Oid lobjId, int flags) |
|
|
|
|
{ |
|
|
|
|
LargeObjectDesc *retval; |
|
|
|
|
|
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_open: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
if (! LargeObjectExists(lobjId)) |
|
|
|
|
elog(ERROR, "inv_open: large object %u not found", lobjId); |
|
|
|
|
|
|
|
|
|
@ -151,9 +145,6 @@ inv_open(Oid lobjId, int flags) |
|
|
|
|
void |
|
|
|
|
inv_close(LargeObjectDesc *obj_desc) |
|
|
|
|
{ |
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_close: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
Assert(PointerIsValid(obj_desc)); |
|
|
|
|
|
|
|
|
|
if (obj_desc->flags & IFS_WRLOCK) |
|
|
|
|
@ -173,9 +164,6 @@ inv_close(LargeObjectDesc *obj_desc) |
|
|
|
|
int |
|
|
|
|
inv_drop(Oid lobjId) |
|
|
|
|
{ |
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_drop: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
LargeObjectDrop(lobjId); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
@ -260,9 +248,6 @@ inv_getsize(LargeObjectDesc *obj_desc) |
|
|
|
|
int |
|
|
|
|
inv_seek(LargeObjectDesc *obj_desc, int offset, int whence) |
|
|
|
|
{ |
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_seek: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
Assert(PointerIsValid(obj_desc)); |
|
|
|
|
|
|
|
|
|
switch (whence) |
|
|
|
|
@ -295,9 +280,6 @@ inv_seek(LargeObjectDesc *obj_desc, int offset, int whence) |
|
|
|
|
int |
|
|
|
|
inv_tell(LargeObjectDesc *obj_desc) |
|
|
|
|
{ |
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_tell: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
Assert(PointerIsValid(obj_desc)); |
|
|
|
|
|
|
|
|
|
return obj_desc->offset; |
|
|
|
|
@ -321,9 +303,6 @@ inv_read(LargeObjectDesc *obj_desc, char *buf, int nbytes) |
|
|
|
|
bytea *datafield; |
|
|
|
|
bool pfreeit; |
|
|
|
|
|
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_read: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
Assert(PointerIsValid(obj_desc)); |
|
|
|
|
Assert(buf != NULL); |
|
|
|
|
|
|
|
|
|
@ -436,9 +415,6 @@ inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes) |
|
|
|
|
bool write_indices; |
|
|
|
|
Relation idescs[Num_pg_largeobject_indices]; |
|
|
|
|
|
|
|
|
|
if (!IsTransactionBlock()) |
|
|
|
|
elog(ERROR, "inv_write: Not in transaction. BLOBs should be used inside transaction."); |
|
|
|
|
|
|
|
|
|
Assert(PointerIsValid(obj_desc)); |
|
|
|
|
Assert(buf != NULL); |
|
|
|
|
|
|
|
|
|
|