00001 /*------------------------------------------------------------------------- 00002 * 00003 * genbki.h 00004 * Required include file for all POSTGRES catalog header files 00005 * 00006 * genbki.h defines CATALOG(), DATA(), BKI_BOOTSTRAP and related macros 00007 * so that the catalog header files can be read by the C compiler. 00008 * (These same words are recognized by genbki.pl to build the BKI 00009 * bootstrap file from these header files.) 00010 * 00011 * 00012 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00013 * Portions Copyright (c) 1994, Regents of the University of California 00014 * 00015 * src/include/catalog/genbki.h 00016 * 00017 *------------------------------------------------------------------------- 00018 */ 00019 #ifndef GENBKI_H 00020 #define GENBKI_H 00021 00022 /* Introduces a catalog's structure definition */ 00023 #define CATALOG(name,oid) typedef struct CppConcat(FormData_,name) 00024 00025 /* 00026 * This is never defined; it's here only for documentation. 00027 * 00028 * Variable-length catalog fields (except possibly the first not nullable one) 00029 * should not be visible in C structures, so they are made invisible by #ifdefs 00030 * of an undefined symbol. See also MARKNOTNULL in bootstrap.c for how this is 00031 * handled. 00032 */ 00033 #undef CATALOG_VARLEN 00034 00035 /* Options that may appear after CATALOG (on the same line) */ 00036 #define BKI_BOOTSTRAP 00037 #define BKI_SHARED_RELATION 00038 #define BKI_WITHOUT_OIDS 00039 #define BKI_ROWTYPE_OID(oid) 00040 #define BKI_SCHEMA_MACRO 00041 00042 /* Declarations that provide the initial content of a catalog */ 00043 /* In C, these need to expand into some harmless, repeatable declaration */ 00044 #define DATA(x) extern int no_such_variable 00045 #define DESCR(x) extern int no_such_variable 00046 #define SHDESCR(x) extern int no_such_variable 00047 00048 /* PHONY type definitions for use in catalog structure definitions only */ 00049 typedef int aclitem; 00050 typedef int pg_node_tree; 00051 00052 #endif /* GENBKI_H */