diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-10-02 14:31:28 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-10-02 14:31:28 -0400 |
commit | f40334b85cf89f1eafd04d31665704fd173e317c (patch) | |
tree | 7b6129aa5b00708ccd069fe3bbea9bb91f6db996 /src/backend/parser | |
parent | 4677fe9fb0aa534b8611c29075fb57b3573612eb (diff) | |
download | postgresql-f40334b85cf89f1eafd04d31665704fd173e317c.tar.gz postgresql-f40334b85cf89f1eafd04d31665704fd173e317c.zip |
Add ALTER EXTENSION ADD/DROP ACCESS METHOD, and use it in pg_upgrade.
Without this, an extension containing an access method is not properly
dumped/restored during pg_upgrade --- the AM ends up not being a member
of the extension after upgrading.
Another oversight in commit 473b93287, reported by Andrew Dunstan.
Report: <f7ac29f3-515c-2a44-21c5-ec925053265f@dunslane.net>
Diffstat (limited to 'src/backend/parser')
-rw-r--r-- | src/backend/parser/gram.y | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 6a0f7b393cb..6f43b85edaf 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -3929,7 +3929,16 @@ alter_extension_opt_item: *****************************************************************************/ AlterExtensionContentsStmt: - ALTER EXTENSION name add_drop AGGREGATE func_name aggr_args + ALTER EXTENSION name add_drop ACCESS METHOD name + { + AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); + n->extname = $3; + n->action = $4; + n->objtype = OBJECT_ACCESS_METHOD; + n->objname = list_make1(makeString($7)); + $$ = (Node *)n; + } + | ALTER EXTENSION name add_drop AGGREGATE func_name aggr_args { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; |