1/*-------------------------------------------------------------------------
2 *
3 * pg_namespace.h
4 * definition of the "namespace" system catalog (pg_namespace)
5 *
6 *
7 * Portions Copyright (c) 1996-2019, 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 */
34CATALOG(pg_namespace,2615,NamespaceRelationId)
35{
36 Oid oid; /* oid */
37
38 NameData nspname;
39 Oid nspowner;
40
41#ifdef CATALOG_VARLEN /* variable-length fields start here */
42 aclitem nspacl[1];
43#endif
44} FormData_pg_namespace;
45
46/* ----------------
47 * Form_pg_namespace corresponds to a pointer to a tuple with
48 * the format of pg_namespace relation.
49 * ----------------
50 */
51typedef FormData_pg_namespace *Form_pg_namespace;
52
53/*
54 * prototypes for functions in pg_namespace.c
55 */
56extern Oid NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp);
57
58#endif /* PG_NAMESPACE_H */
59