codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * pg_range.h4 * definition of the "range type" system catalog (pg_range)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_range.h11 *12 * NOTES13 * The Catalog.pm module reads this file and derives schema14 * information.15 *16 *-------------------------------------------------------------------------17 */18#ifndef PG_RANGE_H19#define PG_RANGE_H20 21#include "catalog/genbki.h"22#include "catalog/pg_range_d.h"23 24/* ----------------25 * pg_range definition. cpp turns this into26 * typedef struct FormData_pg_range27 * ----------------28 */29CATALOG(pg_range,3541,RangeRelationId)30{31 /* OID of owning range type */32 Oid rngtypid BKI_LOOKUP(pg_type);33 34 /* OID of range's element type (subtype) */35 Oid rngsubtype BKI_LOOKUP(pg_type);36 37 /* OID of the range's multirange type */38 Oid rngmultitypid BKI_LOOKUP(pg_type);39 40 /* collation for this range type, or 0 */41 Oid rngcollation BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_collation);42 43 /* subtype's btree opclass */44 Oid rngsubopc BKI_LOOKUP(pg_opclass);45 46 /* canonicalize range, or 0 */47 regproc rngcanonical BKI_LOOKUP_OPT(pg_proc);48 49 /* subtype difference as a float8, or 0 */50 regproc rngsubdiff BKI_LOOKUP_OPT(pg_proc);51} FormData_pg_range;52 53/* ----------------54 * Form_pg_range corresponds to a pointer to a tuple with55 * the format of pg_range relation.56 * ----------------57 */58typedef FormData_pg_range *Form_pg_range;59 60DECLARE_UNIQUE_INDEX_PKEY(pg_range_rngtypid_index, 3542, RangeTypidIndexId, on pg_range using btree(rngtypid oid_ops));61DECLARE_UNIQUE_INDEX(pg_range_rngmultitypid_index, 2228, RangeMultirangeTypidIndexId, on pg_range using btree(rngmultitypid oid_ops));62 63/*64 * prototypes for functions in pg_range.c65 */66 67extern void RangeCreate(Oid rangeTypeOid, Oid rangeSubType, Oid rangeCollation,68 Oid rangeSubOpclass, RegProcedure rangeCanonical,69 RegProcedure rangeSubDiff, Oid multirangeTypeOid);70extern void RangeDelete(Oid rangeTypeOid);71 72#endif /* PG_RANGE_H */73 