diff options
| author | Bruce Momjian <bruce@momjian.us> | 2000-10-22 05:27:23 +0000 |
|---|---|---|
| committer | Bruce Momjian <bruce@momjian.us> | 2000-10-22 05:27:23 +0000 |
| commit | aa23c70522ce67f93f6c0b0d6455ad8c6da58fd3 (patch) | |
| tree | 0c3058a10430ed2b63784982e93083316e54e12f /src/backend/catalog/pg_largeobject.c | |
| parent | 4ed04855b0967e204aea44d2a511158f72920e85 (diff) | |
| download | postgresql-aa23c70522ce67f93f6c0b0d6455ad8c6da58fd3.tar.gz | |
BACKED OUT.
> Regression tests opr_sanity and sanity_check are now failing.
Um, Bruce, I've said several times that I didn't think Perchine's large
object changes should be applied until someone had actually reviewed
them.
Diffstat (limited to 'src/backend/catalog/pg_largeobject.c')
| -rw-r--r-- | src/backend/catalog/pg_largeobject.c | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c deleted file mode 100644 index ace63d3263..0000000000 --- a/src/backend/catalog/pg_largeobject.c +++ /dev/null @@ -1,135 +0,0 @@ -/*------------------------------------------------------------------------- - * - * pg_largeobject.c - * routines to support manipulation of the pg_largeobject relation - * - * Portions Copyright (c) 1996-2000, PostgreSQL, Inc - * Portions Copyright (c) 1994, Regents of the University of California - * - * - * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_largeobject.c,v 1.3 2000/10/21 15:55:21 momjian Exp $ - * - *------------------------------------------------------------------------- - */ -#include "postgres.h" - -#include "access/genam.h" -#include "access/heapam.h" -#include "catalog/catname.h" -#include "catalog/indexing.h" -#include "catalog/pg_largeobject.h" -#include "miscadmin.h" -#include "utils/fmgroids.h" - -bytea *_byteain(const char *data, int32 size); - -bytea *_byteain(const char *data, int32 size) { - bytea *result; - - result = (bytea *)palloc(size + VARHDRSZ); - result->vl_len = size + VARHDRSZ; - if (size > 0) - memcpy(result->vl_dat, data, size); - - return result; -} - -Oid LargeobjectCreate(Oid loid) { - Oid retval; - Relation pg_largeobject; - HeapTuple ntup = (HeapTuple) palloc(sizeof(HeapTupleData)); - Relation idescs[Num_pg_largeobject_indices]; - Datum values[Natts_pg_largeobject]; - char nulls[Natts_pg_largeobject]; - int i; - - for (i=0; i<Natts_pg_largeobject; i++) { - nulls[i] = ' '; - values[i] = (Datum)NULL; - } - - i = 0; - values[i++] = ObjectIdGetDatum(loid); - values[i++] = Int32GetDatum(0); - values[i++] = (Datum) _byteain(NULL, 0); - - pg_largeobject = heap_openr(LargeobjectRelationName, RowExclusiveLock); - ntup = heap_formtuple(pg_largeobject->rd_att, values, nulls); - retval = heap_insert(pg_largeobject, ntup); - - if (!IsIgnoringSystemIndexes()) { - CatalogOpenIndices(Num_pg_largeobject_indices, Name_pg_largeobject_indices, idescs); - CatalogIndexInsert(idescs, Num_pg_largeobject_indices, pg_largeobject, ntup); - CatalogCloseIndices(Num_pg_largeobject_indices, idescs); - } - - heap_close(pg_largeobject, RowExclusiveLock); - heap_freetuple(ntup); - - CommandCounterIncrement(); - - return retval; -} - -void LargeobjectDrop(Oid loid) { - Relation pg_largeobject; - Relation pg_lo_id; - ScanKeyData skey; - IndexScanDesc sd = (IndexScanDesc) NULL; - RetrieveIndexResult indexRes; - int found = 0; - - ScanKeyEntryInitialize(&skey, - (bits16) 0x0, - (AttrNumber) 1, - (RegProcedure) F_OIDEQ, - ObjectIdGetDatum(loid)); - - pg_largeobject = heap_openr(LargeobjectRelationName, RowShareLock); - pg_lo_id = index_openr(LargeobjectLOIdIndex); - - sd = index_beginscan(pg_lo_id, false, 1, &skey); - - while((indexRes = index_getnext(sd, ForwardScanDirection))) { - found++; - heap_delete(pg_largeobject, &indexRes->heap_iptr, NULL); - pfree(indexRes); - } - - index_endscan(sd); - - index_close(pg_lo_id); - heap_close(pg_largeobject, RowShareLock); - if (found == 0) - elog(ERROR, "LargeobjectDrop: large object %d not found", loid); -} - -int LargeobjectFind(Oid loid) { - int retval = 0; - Relation pg_lo_id; - ScanKeyData skey; - IndexScanDesc sd = (IndexScanDesc) NULL; - RetrieveIndexResult indexRes; - - ScanKeyEntryInitialize(&skey, - (bits16) 0x0, - (AttrNumber) 1, - (RegProcedure) F_OIDEQ, - ObjectIdGetDatum(loid)); - - pg_lo_id = index_openr(LargeobjectLOIdIndex); - - sd = index_beginscan(pg_lo_id, false, 1, &skey); - - if ((indexRes = index_getnext(sd, ForwardScanDirection))) { - retval = 1; - pfree(indexRes); - } - - index_endscan(sd); - - index_close(pg_lo_id); - return retval; -} - |
