1 /*-------------------------------------------------------------------------
4 * Required include file for all POSTGRES catalog header files
6 * genbki.h defines CATALOG(), DATA(), BKI_BOOTSTRAP and related macros
7 * so that the catalog header files can be read by the C compiler.
8 * (These same words are recognized by genbki.pl to build the BKI
9 * bootstrap file from these header files.)
12 * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
13 * Portions Copyright (c) 1994, Regents of the University of California
15 * src/include/catalog/genbki.h
17 *-------------------------------------------------------------------------
22 /* Introduces a catalog's structure definition */
23 #define CATALOG(name,oid) typedef struct CppConcat(FormData_,name)
26 * This is never defined; it's here only for documentation.
28 * Variable-length catalog fields (except possibly the first not nullable one)
29 * should not be visible in C structures, so they are made invisible by #ifdefs
30 * of an undefined symbol. See also MARKNOTNULL in bootstrap.c for how this is
35 /* Options that may appear after CATALOG (on the same line) */
37 #define BKI_SHARED_RELATION
38 #define BKI_WITHOUT_OIDS
39 #define BKI_ROWTYPE_OID(oid)
40 #define BKI_SCHEMA_MACRO
42 /* Declarations that provide the initial content of a catalog */
43 /* In C, these need to expand into some harmless, repeatable declaration */
44 #define DATA(x) extern int no_such_variable
45 #define DESCR(x) extern int no_such_variable
46 #define SHDESCR(x) extern int no_such_variable
48 /* PHONY type definitions for use in catalog structure definitions only */
50 typedef int pg_node_tree;