1 /*-------------------------------------------------------------------------
2  *
3  * pg_extension.h
4  *	  definition of the "extension" system catalog (pg_extension)
5  *
6  *
7  * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/catalog/pg_extension.h
11  *
12  * NOTES
13  *	  The Catalog.pm module reads this file and derives schema
14  *	  information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_EXTENSION_H
19 #define PG_EXTENSION_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_extension_d.h"
23 
24 /* ----------------
25  *		pg_extension definition.  cpp turns this into
26  *		typedef struct FormData_pg_extension
27  * ----------------
28  */
29 CATALOG(pg_extension,3079,ExtensionRelationId)
30 {
31 	NameData	extname;		/* extension name */
32 	Oid			extowner;		/* extension owner */
33 	Oid			extnamespace;	/* namespace of contained objects */
34 	bool		extrelocatable; /* if true, allow ALTER EXTENSION SET SCHEMA */
35 
36 #ifdef CATALOG_VARLEN			/* variable-length fields start here */
37 	/* extversion may never be null, but the others can be. */
38 	text		extversion BKI_FORCE_NOT_NULL;	/* extension version name */
39 	Oid			extconfig[1];	/* dumpable configuration tables */
40 	text		extcondition[1];	/* WHERE clauses for config tables */
41 #endif
42 } FormData_pg_extension;
43 
44 /* ----------------
45  *		Form_pg_extension corresponds to a pointer to a tuple with
46  *		the format of pg_extension relation.
47  * ----------------
48  */
49 typedef FormData_pg_extension *Form_pg_extension;
50 
51 #endif							/* PG_EXTENSION_H */
52