1 /*------------------------------------------------------------------------- 2 * 3 * pg_attrdef.h 4 * definition of the "attribute defaults" system catalog (pg_attrdef) 5 * 6 * 7 * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/catalog/pg_attrdef.h 11 * 12 * NOTES 13 * The Catalog.pm module reads this file and derives schema 14 * information. 15 * 16 *------------------------------------------------------------------------- 17 */ 18 #ifndef PG_ATTRDEF_H 19 #define PG_ATTRDEF_H 20 21 #include "catalog/genbki.h" 22 #include "catalog/pg_attrdef_d.h" 23 24 /* ---------------- 25 * pg_attrdef definition. cpp turns this into 26 * typedef struct FormData_pg_attrdef 27 * ---------------- 28 */ 29 CATALOG(pg_attrdef,2604,AttrDefaultRelationId) 30 { 31 Oid oid; /* oid */ 32 33 Oid adrelid BKI_LOOKUP(pg_class); /* OID of table containing 34 * attribute */ 35 int16 adnum; /* attnum of attribute */ 36 37 #ifdef CATALOG_VARLEN /* variable-length fields start here */ 38 pg_node_tree adbin BKI_FORCE_NOT_NULL; /* nodeToString representation of 39 * default */ 40 #endif 41 } FormData_pg_attrdef; 42 43 /* ---------------- 44 * Form_pg_attrdef corresponds to a pointer to a tuple with 45 * the format of pg_attrdef relation. 46 * ---------------- 47 */ 48 typedef FormData_pg_attrdef *Form_pg_attrdef; 49 50 DECLARE_TOAST(pg_attrdef, 2830, 2831); 51 52 DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index, 2656, on pg_attrdef using btree(adrelid oid_ops, adnum int2_ops)); 53 #define AttrDefaultIndexId 2656 54 DECLARE_UNIQUE_INDEX_PKEY(pg_attrdef_oid_index, 2657, on pg_attrdef using btree(oid oid_ops)); 55 #define AttrDefaultOidIndexId 2657 56 57 DECLARE_FOREIGN_KEY((adrelid, adnum), pg_attribute, (attrelid, attnum)); 58 59 #endif /* PG_ATTRDEF_H */ 60