diff options
-rw-r--r-- | doc/src/sgml/ref/drop_owned.sgml | 7 | ||||
-rw-r--r-- | src/backend/catalog/pg_shdepend.c | 13 |
2 files changed, 12 insertions, 8 deletions
diff --git a/doc/src/sgml/ref/drop_owned.sgml b/doc/src/sgml/ref/drop_owned.sgml index a453af58d14..48cf0fa535b 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 8d2d37c730a..91e26f4e159 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; } } |