1 /*-------------------------------------------------------------------------
2  *
3  * pg_namespace.h
4  *	  definition of the "namespace" system catalog (pg_namespace)
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_namespace.h
11  *
12  * NOTES
13  *	  The Catalog.pm module reads this file and derives schema
14  *	  information.
15  *
16  *-------------------------------------------------------------------------
17  */
18 #ifndef PG_NAMESPACE_H
19 #define PG_NAMESPACE_H
20 
21 #include "catalog/genbki.h"
22 #include "catalog/pg_namespace_d.h"
23 
24 /* ----------------------------------------------------------------
25  *		pg_namespace definition.
26  *
27  *		cpp turns this into typedef struct FormData_pg_namespace
28  *
29  *	nspname				name of the namespace
30  *	nspowner			owner (creator) of the namespace
31  *	nspacl				access privilege list
32  * ----------------------------------------------------------------
33  */
34 CATALOG(pg_namespace,2615,NamespaceRelationId)
35 {
36 	NameData	nspname;
37 	Oid			nspowner;
38 
39 #ifdef CATALOG_VARLEN			/* variable-length fields start here */
40 	aclitem		nspacl[1];
41 #endif
42 } FormData_pg_namespace;
43 
44 /* ----------------
45  *		Form_pg_namespace corresponds to a pointer to a tuple with
46  *		the format of pg_namespace relation.
47  * ----------------
48  */
49 typedef FormData_pg_namespace *Form_pg_namespace;
50 
51 /*
52  * prototypes for functions in pg_namespace.c
53  */
54 extern Oid	NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp);
55 
56 #endif							/* PG_NAMESPACE_H */
57