diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/commands/extension.h | 2 | ||||
-rw-r--r-- | src/include/nodes/nodes.h | 1 | ||||
-rw-r--r-- | src/include/nodes/parsenodes.h | 15 |
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 * ---------------------- |