PostgreSQL Source Code git master
pg_extension.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * pg_extension.h
4 * definition of the "extension" system catalog (pg_extension)
5 *
6 *
7 * Portions Copyright (c) 1996-2025, 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" /* IWYU pragma: export */
23
24/* ----------------
25 * pg_extension definition. cpp turns this into
26 * typedef struct FormData_pg_extension
27 * ----------------
28 */
29CATALOG(pg_extension,3079,ExtensionRelationId)
30{
31 Oid oid; /* oid */
32 NameData extname; /* extension name */
33 Oid extowner BKI_LOOKUP(pg_authid); /* extension owner */
34 Oid extnamespace BKI_LOOKUP(pg_namespace); /* namespace of
35 * contained objects */
36 bool extrelocatable; /* if true, allow ALTER EXTENSION SET SCHEMA */
37
38#ifdef CATALOG_VARLEN /* variable-length fields start here */
39 /* extversion may never be null, but the others can be. */
40 text extversion BKI_FORCE_NOT_NULL; /* extension version name */
41 Oid extconfig[1] BKI_LOOKUP(pg_class); /* dumpable configuration
42 * tables */
43 text extcondition[1]; /* WHERE clauses for config tables */
44#endif
46
47/* ----------------
48 * Form_pg_extension corresponds to a pointer to a tuple with
49 * the format of pg_extension relation.
50 * ----------------
51 */
53
54DECLARE_TOAST(pg_extension, 4147, 4148);
55
56DECLARE_UNIQUE_INDEX_PKEY(pg_extension_oid_index, 3080, ExtensionOidIndexId, pg_extension, btree(oid oid_ops));
57DECLARE_UNIQUE_INDEX(pg_extension_name_index, 3081, ExtensionNameIndexId, pg_extension, btree(extname name_ops));
58
59MAKE_SYSCACHE(EXTENSIONOID, pg_extension_oid_index, 2);
60MAKE_SYSCACHE(EXTENSIONNAME, pg_extension_name_index, 2);
61
62#endif /* PG_EXTENSION_H */
#define BKI_LOOKUP(catalog)
Definition: genbki.h:46
#define BKI_FORCE_NOT_NULL
Definition: genbki.h:33
DECLARE_UNIQUE_INDEX_PKEY(pg_extension_oid_index, 3080, ExtensionOidIndexId, pg_extension, btree(oid oid_ops))
CATALOG(pg_extension, 3079, ExtensionRelationId)
Definition: pg_extension.h:29
DECLARE_TOAST(pg_extension, 4147, 4148)
MAKE_SYSCACHE(EXTENSIONOID, pg_extension_oid_index, 2)
FormData_pg_extension * Form_pg_extension
Definition: pg_extension.h:52
DECLARE_UNIQUE_INDEX(pg_extension_name_index, 3081, ExtensionNameIndexId, pg_extension, btree(extname name_ops))
FormData_pg_extension
Definition: pg_extension.h:45
unsigned int Oid
Definition: postgres_ext.h:32
Definition: c.h:698
Definition: c.h:644