diff --git a/doc/src/sgml/ref/drop_owned.sgml b/doc/src/sgml/ref/drop_owned.sgml index a453af58d14f5d6afd97e59db06d1066101ce770..48cf0fa535bf25a5d4bc087f1de2b23d9581104f 100644 --- a/doc/src/sgml/ref/drop_owned.sgml +++ b/doc/src/sgml/ref/drop_owned.sgml @@ -29,10 +29,11 @@ DROP OWNED BY <replaceable class="PARAMETER">name</replaceable> [, ...] [ CASCAD <title>Description</title> <para> - <command>DROP OWNED</command> drops all the objects in the current + <command>DROP OWNED</command> drops all the objects within the current database that are owned by one of the specified roles. Any privileges granted to the given roles on objects in the current - database will also be revoked. + database and on shared objects (databases, tablespaces) will also be + revoked. </para> </refsect1> @@ -93,7 +94,7 @@ DROP OWNED BY <replaceable class="PARAMETER">name</replaceable> [, ...] [ CASCAD </para> <para> - Databases owned by the role(s) will not be removed. + Databases and tablespaces owned by the role(s) will not be removed. </para> </refsect1> diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c index 1ecf12c211d28c0466b5bb0df646ddc39ac94ba7..f1752b17c9c2d1dd12d51f76cef89490615c80c1 100644 --- a/src/backend/catalog/pg_shdepend.c +++ b/src/backend/catalog/pg_shdepend.c @@ -1235,11 +1235,14 @@ shdepDropOwned(List *roleids, DropBehavior behavior) sdepForm->objid); break; case SHARED_DEPENDENCY_OWNER: - /* Save it for deletion below */ - obj.classId = sdepForm->classid; - obj.objectId = sdepForm->objid; - obj.objectSubId = sdepForm->objsubid; - add_exact_object_address(&obj, deleteobjs); + /* If a local object, save it for deletion below */ + if (sdepForm->dbid == MyDatabaseId) + { + obj.classId = sdepForm->classid; + obj.objectId = sdepForm->objid; + obj.objectSubId = sdepForm->objsubid; + add_exact_object_address(&obj, deleteobjs); + } break; } }