diff options
Diffstat (limited to 'src/backend/commands/extension.c')
-rw-r--r-- | src/backend/commands/extension.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 4f9ea2d12bc..29fcdd1b55d 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -2201,6 +2201,7 @@ AlterExtensionNamespace(List *names, const char *newschema) Relation depRel; SysScanDesc depScan; HeapTuple depTup; + ObjectAddresses *objsMoved; if (list_length(names) != 1) ereport(ERROR, @@ -2275,6 +2276,8 @@ AlterExtensionNamespace(List *names, const char *newschema) errmsg("extension \"%s\" does not support SET SCHEMA", NameStr(extForm->extname)))); + objsMoved = new_object_addresses(); + /* * Scan pg_depend to find objects that depend directly on the extension, * and alter each one's schema. @@ -2314,9 +2317,11 @@ AlterExtensionNamespace(List *names, const char *newschema) if (dep.objectSubId != 0) /* should not happen */ elog(ERROR, "extension should not have a sub-object dependency"); + /* Relocate the object */ dep_oldNspOid = AlterObjectNamespace_oid(dep.classId, dep.objectId, - nspOid); + nspOid, + objsMoved); /* * Remember previous namespace of first object that has one |