summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/commands/extension.h2
-rw-r--r--src/include/nodes/nodes.h1
-rw-r--r--src/include/nodes/parsenodes.h15
3 files changed, 15 insertions, 3 deletions
diff --git a/src/include/commands/extension.h b/src/include/commands/extension.h
index 10d08935a00..d0e94556f50 100644
--- a/src/include/commands/extension.h
+++ b/src/include/commands/extension.h
@@ -32,6 +32,8 @@ extern void CreateExtension(CreateExtensionStmt *stmt);
extern void RemoveExtensions(DropStmt *stmt);
extern void RemoveExtensionById(Oid extId);
+extern void ExecAlterExtensionAddStmt(AlterExtensionAddStmt *stmt);
+
extern Oid get_extension_oid(const char *extname, bool missing_ok);
extern char *get_extension_name(Oid ext_oid);
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 1ca5f1ef9a1..1ce97386315 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -356,6 +356,7 @@ typedef enum NodeTag
T_SecLabelStmt,
T_CreateForeignTableStmt,
T_CreateExtensionStmt,
+ T_AlterExtensionAddStmt,
/*
* TAGS FOR PARSE TREE NODES (parsenodes.h)
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 5de4dbd5ec1..2116c94d0d3 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -1060,13 +1060,13 @@ typedef struct SetOperationStmt
/*
* When a command can act on several kinds of objects with only one
* parse structure required, use these constants to designate the
- * object type.
+ * object type. Note that commands typically don't support all the types.
*/
typedef enum ObjectType
{
OBJECT_AGGREGATE,
- OBJECT_ATTRIBUTE, /* type's attribute, when distinct from column */
+ OBJECT_ATTRIBUTE, /* type's attribute, when distinct from column */
OBJECT_CAST,
OBJECT_COLUMN,
OBJECT_CONSTRAINT,
@@ -1535,7 +1535,7 @@ typedef struct AlterTableSpaceOptionsStmt
} AlterTableSpaceOptionsStmt;
/* ----------------------
- * Create Extension Statement
+ * Create/Alter Extension Statements
* ----------------------
*/
@@ -1546,6 +1546,15 @@ typedef struct CreateExtensionStmt
List *options; /* List of DefElem nodes */
} CreateExtensionStmt;
+typedef struct AlterExtensionAddStmt
+{
+ NodeTag type;
+ char *extname; /* Extension's name */
+ ObjectType objtype; /* Object's type */
+ List *objname; /* Qualified name of the object */
+ List *objargs; /* Arguments if needed (eg, for functions) */
+} AlterExtensionAddStmt;
+
/* ----------------------
* Create/Drop FOREIGN DATA WRAPPER Statements
* ----------------------