diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2020-06-13 09:03:28 +0200 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2020-06-13 09:19:30 +0200 |
commit | 8f5b5967441f05e56446fa4cdeffd0774c01e553 (patch) | |
tree | b9f50e27f0b54746a7734b6ec73758695651de13 /src/backend/parser | |
parent | a332b366d4fa19ee3578a864993a8dc7abb47177 (diff) |
Refactor AlterExtensionContentsStmt grammar
Make use of the general object support already used by COMMENT, DROP,
and SECURITY LABEL.
Discussion: https://www.postgresql.org/message-id/flat/163c00a5-f634-ca52-fc7c-0e53deda8735%402ndquadrant.com
Diffstat (limited to 'src/backend/parser')
-rw-r--r-- | src/backend/parser/gram.y | 157 |
1 files changed, 11 insertions, 146 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index b0d6ad10608..e669d75a5af 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -4546,50 +4546,41 @@ alter_extension_opt_item: *****************************************************************************/ AlterExtensionContentsStmt: - ALTER EXTENSION name add_drop ACCESS METHOD name + ALTER EXTENSION name add_drop object_type_name name { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; n->action = $4; - n->objtype = OBJECT_ACCESS_METHOD; - n->object = (Node *) makeString($7); + n->objtype = $5; + n->object = (Node *) makeString($6); $$ = (Node *)n; } - | ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes + | ALTER EXTENSION name add_drop object_type_any_name any_name { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; n->action = $4; - n->objtype = OBJECT_AGGREGATE; + n->objtype = $5; n->object = (Node *) $6; $$ = (Node *)n; } - | ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_CAST; - n->object = (Node *) list_make2($7, $9); - $$ = (Node *) n; - } - | ALTER EXTENSION name add_drop COLLATION any_name + | ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; n->action = $4; - n->objtype = OBJECT_COLLATION; + n->objtype = OBJECT_AGGREGATE; n->object = (Node *) $6; $$ = (Node *)n; } - | ALTER EXTENSION name add_drop CONVERSION_P any_name + | ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; n->action = $4; - n->objtype = OBJECT_CONVERSION; - n->object = (Node *) $6; - $$ = (Node *)n; + n->objtype = OBJECT_CAST; + n->object = (Node *) list_make2($7, $9); + $$ = (Node *) n; } | ALTER EXTENSION name add_drop DOMAIN_P Typename { @@ -4609,15 +4600,6 @@ AlterExtensionContentsStmt: n->object = (Node *) $6; $$ = (Node *)n; } - | ALTER EXTENSION name add_drop opt_procedural LANGUAGE name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_LANGUAGE; - n->object = (Node *) makeString($7); - $$ = (Node *)n; - } | ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); @@ -4663,123 +4645,6 @@ AlterExtensionContentsStmt: n->object = (Node *) $6; $$ = (Node *)n; } - | ALTER EXTENSION name add_drop SCHEMA name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_SCHEMA; - n->object = (Node *) makeString($6); - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop EVENT TRIGGER name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_EVENT_TRIGGER; - n->object = (Node *) makeString($7); - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop TABLE any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_TABLE; - n->object = (Node *) $6; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop TEXT_P SEARCH PARSER any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_TSPARSER; - n->object = (Node *) $8; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop TEXT_P SEARCH DICTIONARY any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_TSDICTIONARY; - n->object = (Node *) $8; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop TEXT_P SEARCH TEMPLATE any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_TSTEMPLATE; - n->object = (Node *) $8; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop TEXT_P SEARCH CONFIGURATION any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_TSCONFIGURATION; - n->object = (Node *) $8; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop SEQUENCE any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_SEQUENCE; - n->object = (Node *) $6; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop VIEW any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_VIEW; - n->object = (Node *) $6; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop MATERIALIZED VIEW any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_MATVIEW; - n->object = (Node *) $7; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop FOREIGN TABLE any_name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_FOREIGN_TABLE; - n->object = (Node *) $7; - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop FOREIGN DATA_P WRAPPER name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_FDW; - n->object = (Node *) makeString($8); - $$ = (Node *)n; - } - | ALTER EXTENSION name add_drop SERVER name - { - AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); - n->extname = $3; - n->action = $4; - n->objtype = OBJECT_FOREIGN_SERVER; - n->object = (Node *) makeString($6); - $$ = (Node *)n; - } | ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); |