25 #include "utils/fmgroids.h"
43 bool nulls[Natts_pg_largeobject_metadata];
45 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
52 memset(nulls,
false,
sizeof(nulls));
58 LargeObjectMetadataOidIndexId,
59 Anum_pg_largeobject_metadata_oid);
62 values[Anum_pg_largeobject_metadata_lomowner - 1]
64 nulls[Anum_pg_largeobject_metadata_lomacl - 1] =
true;
91 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
94 pg_largeobject =
table_open(LargeObjectRelationId,
101 Anum_pg_largeobject_metadata_oid,
106 LargeObjectMetadataOidIndexId,
true,
112 (
errcode(ERRCODE_UNDEFINED_OBJECT),
113 errmsg(
"large object %u does not exist", loid)));
123 Anum_pg_largeobject_loid,
128 LargeObjectLOidPNIndexId,
true,
164 Anum_pg_largeobject_metadata_oid,
168 pg_lo_meta =
table_open(LargeObjectMetadataRelationId,
172 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, const Datum *values, const 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)