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