PostgreSQL Source Code  git master
extension.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * extension.h
4  * Extension management commands (create/drop extension).
5  *
6  *
7  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/commands/extension.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef EXTENSION_H
15 #define EXTENSION_H
16 
17 #include "catalog/objectaddress.h"
18 #include "parser/parse_node.h"
19 
20 
21 /*
22  * creating_extension is only true while running a CREATE EXTENSION or ALTER
23  * EXTENSION UPDATE command. It instructs recordDependencyOnCurrentExtension()
24  * to register a dependency on the current pg_extension object for each SQL
25  * object created by an extension script. It also instructs performDeletion()
26  * to remove such dependencies without following them, so that extension
27  * scripts can drop member objects without having to explicitly dissociate
28  * them from the extension first.
29  */
32 
33 
35 
36 extern void RemoveExtensionById(Oid extId);
37 
38 extern ObjectAddress InsertExtensionTuple(const char *extName, Oid extOwner,
39  Oid schemaOid, bool relocatable, const char *extVersion,
40  Datum extConfig, Datum extCondition,
41  List *requiredExtensions);
42 
44 
46  ObjectAddress *objAddr);
47 
48 extern Oid get_extension_oid(const char *extname, bool missing_ok);
49 extern char *get_extension_name(Oid ext_oid);
50 extern Oid get_extension_schema(Oid ext_oid);
51 extern bool extension_file_exists(const char *extensionName);
52 
53 extern ObjectAddress AlterExtensionNamespace(const char *extensionName, const char *newschema,
54  Oid *oldschema);
55 
56 #endif /* EXTENSION_H */
#define PGDLLIMPORT
Definition: c.h:1316
Oid get_extension_schema(Oid ext_oid)
Definition: extension.c:229
ObjectAddress InsertExtensionTuple(const char *extName, Oid extOwner, Oid schemaOid, bool relocatable, const char *extVersion, Datum extConfig, Datum extCondition, List *requiredExtensions)
Definition: extension.c:1866
ObjectAddress CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
Definition: extension.c:1768
PGDLLIMPORT Oid CurrentExtensionObject
Definition: extension.c:72
ObjectAddress AlterExtensionNamespace(const char *extensionName, const char *newschema, Oid *oldschema)
Definition: extension.c:2772
PGDLLIMPORT bool creating_extension
Definition: extension.c:71
ObjectAddress ExecAlterExtensionStmt(ParseState *pstate, AlterExtensionStmt *stmt)
Definition: extension.c:2987
ObjectAddress ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt, ObjectAddress *objAddr)
Definition: extension.c:3292
Oid get_extension_oid(const char *extname, bool missing_ok)
Definition: extension.c:145
char * get_extension_name(Oid ext_oid)
Definition: extension.c:190
void RemoveExtensionById(Oid extId)
Definition: extension.c:1954
bool extension_file_exists(const char *extensionName)
Definition: extension.c:2260
#define stmt
Definition: indent_codes.h:59
uintptr_t Datum
Definition: postgres.h:64
unsigned int Oid
Definition: postgres_ext.h:31
Definition: pg_list.h:54