codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * pg_largeobject.h4 * definition of the "large object" system catalog (pg_largeobject)5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/catalog/pg_largeobject.h11 *12 * NOTES13 * The Catalog.pm module reads this file and derives schema14 * information.15 *16 *-------------------------------------------------------------------------17 */18#ifndef PG_LARGEOBJECT_H19#define PG_LARGEOBJECT_H20 21#include "catalog/genbki.h"22#include "catalog/pg_largeobject_d.h"23 24/* ----------------25 * pg_largeobject definition. cpp turns this into26 * typedef struct FormData_pg_largeobject27 * ----------------28 */29CATALOG(pg_largeobject,2613,LargeObjectRelationId)30{31 Oid loid BKI_LOOKUP(pg_largeobject_metadata); /* Identifier of large32 * object */33 int32 pageno; /* Page number (starting from 0) */34 35 /* data has variable length, but we allow direct access; see inv_api.c */36 bytea data BKI_FORCE_NOT_NULL; /* Data for page (may be37 * zero-length) */38} FormData_pg_largeobject;39 40/* ----------------41 * Form_pg_largeobject corresponds to a pointer to a tuple with42 * the format of pg_largeobject relation.43 * ----------------44 */45typedef FormData_pg_largeobject *Form_pg_largeobject;46 47DECLARE_UNIQUE_INDEX_PKEY(pg_largeobject_loid_pn_index, 2683, LargeObjectLOidPNIndexId, on pg_largeobject using btree(loid oid_ops, pageno int4_ops));48 49extern Oid LargeObjectCreate(Oid loid);50extern void LargeObjectDrop(Oid loid);51extern bool LargeObjectExists(Oid loid);52 53#endif /* PG_LARGEOBJECT_H */54 