28 #include "utils/fmgroids.h"
46 bool nulls[Natts_pg_largeobject_metadata];
48 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
55 memset(nulls,
false,
sizeof(nulls));
61 LargeObjectMetadataOidIndexId,
62 Anum_pg_largeobject_metadata_oid);
65 values[Anum_pg_largeobject_metadata_lomowner - 1]
67 nulls[Anum_pg_largeobject_metadata_lomacl - 1] =
true;
94 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
97 pg_largeobject =
table_open(LargeObjectRelationId,
104 Anum_pg_largeobject_metadata_oid,
109 LargeObjectMetadataOidIndexId,
true,
115 (
errcode(ERRCODE_UNDEFINED_OBJECT),
116 errmsg(
"large object %u does not exist", loid)));
126 Anum_pg_largeobject_loid,
131 LargeObjectLOidPNIndexId,
true,
167 Anum_pg_largeobject_metadata_oid,
171 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
175 LargeObjectMetadataOidIndexId,
true,
static Datum values[MAXATTR]
#define OidIsValid(objectId)
Oid GetNewOidWithIndex(Relation relation, Oid indexId, AttrNumber oidcolumn)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
void systable_endscan(SysScanDesc sysscan)
HeapTuple systable_getnext(SysScanDesc sysscan)
SysScanDesc systable_beginscan(Relation heapRelation, Oid indexId, bool indexOK, Snapshot snapshot, int nkeys, ScanKey key)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, Datum *values, bool *isnull)
void heap_freetuple(HeapTuple htup)
#define HeapTupleIsValid(tuple)
void CatalogTupleInsert(Relation heapRel, HeapTuple tup)
void CatalogTupleDelete(Relation heapRel, ItemPointer tid)
void LargeObjectDrop(Oid loid)
bool LargeObjectExists(Oid loid)
Oid LargeObjectCreate(Oid loid)
static Datum ObjectIdGetDatum(Oid X)
#define RelationGetDescr(relation)
void ScanKeyInit(ScanKey entry, AttrNumber attributeNumber, StrategyNumber strategy, RegProcedure procedure, Datum argument)
#define BTEqualStrategyNumber
void table_close(Relation relation, LOCKMODE lockmode)
Relation table_open(Oid relationId, LOCKMODE lockmode)