summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y113
1 files changed, 67 insertions, 46 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index e2d7d6a02f3..82ff9accc72 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -185,7 +185,7 @@ static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_
AlterDatabaseStmt AlterDatabaseSetStmt AlterDomainStmt AlterEnumStmt
AlterFdwStmt AlterForeignServerStmt AlterGroupStmt
AlterObjectSchemaStmt AlterOwnerStmt AlterSeqStmt AlterTableStmt
- AlterExtensionAddStmt AlterForeignTableStmt
+ AlterExtensionContentsStmt AlterForeignTableStmt
AlterCompositeTypeStmt AlterUserStmt AlterUserMappingStmt AlterUserSetStmt
AlterRoleStmt AlterRoleSetStmt
AlterDefaultPrivilegesStmt DefACLAction
@@ -664,7 +664,7 @@ stmt :
| AlterDefaultPrivilegesStmt
| AlterDomainStmt
| AlterEnumStmt
- | AlterExtensionAddStmt
+ | AlterExtensionContentsStmt
| AlterFdwStmt
| AlterForeignServerStmt
| AlterForeignTableStmt
@@ -3251,181 +3251,202 @@ create_extension_opt_item:
/*****************************************************************************
*
- * ALTER EXTENSION name ADD object-identifier
+ * ALTER EXTENSION name ADD/DROP object-identifier
*
*****************************************************************************/
-AlterExtensionAddStmt:
- ALTER EXTENSION name ADD_P AGGREGATE func_name aggr_args
+AlterExtensionContentsStmt:
+ ALTER EXTENSION name add_drop AGGREGATE func_name aggr_args
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_AGGREGATE;
n->objname = $6;
n->objargs = $7;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P CAST '(' Typename AS Typename ')'
+ | ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')'
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_CAST;
n->objname = list_make1($7);
n->objargs = list_make1($9);
$$ = (Node *) n;
}
- | ALTER EXTENSION name ADD_P CONVERSION_P any_name
+ | ALTER EXTENSION name add_drop CONVERSION_P any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_CONVERSION;
n->objname = $6;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P DOMAIN_P any_name
+ | ALTER EXTENSION name add_drop DOMAIN_P any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_DOMAIN;
n->objname = $6;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P FUNCTION function_with_argtypes
+ | ALTER EXTENSION name add_drop FUNCTION function_with_argtypes
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_FUNCTION;
n->objname = $6->funcname;
n->objargs = $6->funcargs;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P opt_procedural LANGUAGE name
+ | ALTER EXTENSION name add_drop opt_procedural LANGUAGE name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_LANGUAGE;
n->objname = list_make1(makeString($7));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P OPERATOR any_operator oper_argtypes
+ | ALTER EXTENSION name add_drop OPERATOR any_operator oper_argtypes
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_OPERATOR;
n->objname = $6;
n->objargs = $7;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P OPERATOR CLASS any_name USING access_method
+ | ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING access_method
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_OPCLASS;
n->objname = $7;
n->objargs = list_make1(makeString($9));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P OPERATOR FAMILY any_name USING access_method
+ | ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING access_method
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_OPFAMILY;
n->objname = $7;
n->objargs = list_make1(makeString($9));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P SCHEMA name
+ | ALTER EXTENSION name add_drop SCHEMA name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_SCHEMA;
n->objname = list_make1(makeString($6));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TABLE any_name
+ | ALTER EXTENSION name add_drop TABLE any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TABLE;
n->objname = $6;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TEXT_P SEARCH PARSER any_name
+ | ALTER EXTENSION name add_drop TEXT_P SEARCH PARSER any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TSPARSER;
n->objname = $8;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TEXT_P SEARCH DICTIONARY any_name
+ | ALTER EXTENSION name add_drop TEXT_P SEARCH DICTIONARY any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TSDICTIONARY;
n->objname = $8;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TEXT_P SEARCH TEMPLATE any_name
+ | ALTER EXTENSION name add_drop TEXT_P SEARCH TEMPLATE any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TSTEMPLATE;
n->objname = $8;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TEXT_P SEARCH CONFIGURATION any_name
+ | ALTER EXTENSION name add_drop TEXT_P SEARCH CONFIGURATION any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TSCONFIGURATION;
n->objname = $8;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P SEQUENCE any_name
+ | ALTER EXTENSION name add_drop SEQUENCE any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_SEQUENCE;
n->objname = $6;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P VIEW any_name
+ | ALTER EXTENSION name add_drop VIEW any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_VIEW;
n->objname = $6;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P FOREIGN TABLE any_name
+ | ALTER EXTENSION name add_drop FOREIGN TABLE any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_FOREIGN_TABLE;
n->objname = $7;
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P FOREIGN DATA_P WRAPPER name
+ | ALTER EXTENSION name add_drop FOREIGN DATA_P WRAPPER name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_FDW;
n->objname = list_make1(makeString($8));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P SERVER name
+ | ALTER EXTENSION name add_drop SERVER name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_FOREIGN_SERVER;
n->objname = list_make1(makeString($6));
$$ = (Node *)n;
}
- | ALTER EXTENSION name ADD_P TYPE_P any_name
+ | ALTER EXTENSION name add_drop TYPE_P any_name
{
- AlterExtensionAddStmt *n = makeNode(AlterExtensionAddStmt);
+ AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
n->extname = $3;
+ n->action = $4;
n->objtype = OBJECT_TYPE;
n->objname = $6;
$$ = (Node *)n;