aboutsummaryrefslogtreecommitdiff
path: root/src/backend/catalog/pg_largeobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog/pg_largeobject.c')
-rw-r--r--src/backend/catalog/pg_largeobject.c47
1 files changed, 10 insertions, 37 deletions
diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c
index 819099329ce..d4b5e6bfeb3 100644
--- a/src/backend/catalog/pg_largeobject.c
+++ b/src/backend/catalog/pg_largeobject.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_largeobject.c,v 1.10 2001/08/10 20:52:24 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_largeobject.c,v 1.11 2002/05/20 23:51:42 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,9 +88,7 @@ LargeObjectDrop(Oid loid)
Relation pg_lo_idx;
ScanKeyData skey[1];
IndexScanDesc sd;
- RetrieveIndexResult indexRes;
- HeapTupleData tuple;
- Buffer buffer;
+ HeapTuple tuple;
ScanKeyEntryInitialize(&skey[0],
(bits16) 0x0,
@@ -101,22 +99,12 @@ LargeObjectDrop(Oid loid)
pg_largeobject = heap_openr(LargeObjectRelationName, RowShareLock);
pg_lo_idx = index_openr(LargeObjectLOidPNIndex);
- sd = index_beginscan(pg_lo_idx, false, 1, skey);
+ sd = index_beginscan(pg_largeobject, pg_lo_idx, SnapshotNow, 1, skey);
- tuple.t_datamcxt = CurrentMemoryContext;
- tuple.t_data = NULL;
-
- while ((indexRes = index_getnext(sd, ForwardScanDirection)))
+ while ((tuple = index_getnext(sd, ForwardScanDirection)) != NULL)
{
- tuple.t_self = indexRes->heap_iptr;
- heap_fetch(pg_largeobject, SnapshotNow, &tuple, &buffer, sd);
- pfree(indexRes);
- if (tuple.t_data != NULL)
- {
- simple_heap_delete(pg_largeobject, &tuple.t_self);
- ReleaseBuffer(buffer);
- found = true;
- }
+ simple_heap_delete(pg_largeobject, &tuple->t_self);
+ found = true;
}
index_endscan(sd);
@@ -136,9 +124,7 @@ LargeObjectExists(Oid loid)
Relation pg_lo_idx;
ScanKeyData skey[1];
IndexScanDesc sd;
- RetrieveIndexResult indexRes;
- HeapTupleData tuple;
- Buffer buffer;
+ HeapTuple tuple;
/*
* See if we can find any tuples belonging to the specified LO
@@ -152,23 +138,10 @@ LargeObjectExists(Oid loid)
pg_largeobject = heap_openr(LargeObjectRelationName, RowShareLock);
pg_lo_idx = index_openr(LargeObjectLOidPNIndex);
- sd = index_beginscan(pg_lo_idx, false, 1, skey);
-
- tuple.t_datamcxt = CurrentMemoryContext;
- tuple.t_data = NULL;
+ sd = index_beginscan(pg_largeobject, pg_lo_idx, SnapshotNow, 1, skey);
- while ((indexRes = index_getnext(sd, ForwardScanDirection)))
- {
- tuple.t_self = indexRes->heap_iptr;
- heap_fetch(pg_largeobject, SnapshotNow, &tuple, &buffer, sd);
- pfree(indexRes);
- if (tuple.t_data != NULL)
- {
- retval = true;
- ReleaseBuffer(buffer);
- break;
- }
- }
+ if ((tuple = index_getnext(sd, ForwardScanDirection)) != NULL)
+ retval = true;
index_endscan(sd);