aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/extension.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2020-06-13 09:03:28 +0200
committerPeter Eisentraut <peter@eisentraut.org>2020-06-13 09:19:30 +0200
commit8f5b5967441f05e56446fa4cdeffd0774c01e553 (patch)
treeb9f50e27f0b54746a7734b6ec73758695651de13 /src/backend/commands/extension.c
parenta332b366d4fa19ee3578a864993a8dc7abb47177 (diff)
downloadpostgresql-8f5b5967441f05e56446fa4cdeffd0774c01e553.tar.gz
postgresql-8f5b5967441f05e56446fa4cdeffd0774c01e553.zip
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/commands/extension.c')
-rw-r--r--src/backend/commands/extension.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 9b669d95b80..472e69fdaf9 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -3269,6 +3269,25 @@ ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt,
Relation relation;
Oid oldExtension;
+ switch (stmt->objtype)
+ {
+ case OBJECT_DATABASE:
+ case OBJECT_EXTENSION:
+ case OBJECT_INDEX:
+ case OBJECT_PUBLICATION:
+ case OBJECT_ROLE:
+ case OBJECT_STATISTIC_EXT:
+ case OBJECT_SUBSCRIPTION:
+ case OBJECT_TABLESPACE:
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
+ errmsg("cannot add an object of this type to an extension")));
+ break;
+ default:
+ /* OK */
+ break;
+ }
+
extension.classId = ExtensionRelationId;
extension.objectId = get_extension_oid(stmt->extname, false);
extension.objectSubId = 0;