1 /*-------------------------------------------------------------------------
4 * include file for the bootstrapping code
7 * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/bootstrap/bootstrap.h
12 *-------------------------------------------------------------------------
17 #include "nodes/execnodes.h"
18 #include "nodes/parsenodes.h"
22 * MAXATTR is the maximum number of attributes in a relation supported
23 * at bootstrap time (i.e., the max possible in a system table).
27 #define BOOTCOL_NULL_AUTO 1
28 #define BOOTCOL_NULL_FORCE_NULL 2
29 #define BOOTCOL_NULL_FORCE_NOT_NULL 3
31 extern PGDLLIMPORT Relation boot_reldesc
;
32 extern PGDLLIMPORT Form_pg_attribute attrtypes
[MAXATTR
];
33 extern PGDLLIMPORT
int numattr
;
36 extern void BootstrapModeMain(int argc
, char *argv
[], bool check_only
) pg_attribute_noreturn();
38 extern void closerel(char *relname
);
39 extern void boot_openrel(char *relname
);
41 extern void DefineAttr(char *name
, char *type
, int attnum
, int nullness
);
42 extern void InsertOneTuple(void);
43 extern void InsertOneValue(char *value
, int i
);
44 extern void InsertOneNull(int i
);
46 extern void index_register(Oid heap
, Oid ind
, const IndexInfo
*indexInfo
);
47 extern void build_indices(void);
49 extern void boot_get_type_io_data(Oid typid
,
58 extern int boot_yyparse(void);
60 extern int boot_yylex(void);
61 extern void boot_yyerror(const char *message
) pg_attribute_noreturn();
63 #endif /* BOOTSTRAP_H */