Alvaro Herrera <alvherre@surnet.cl> writes:
> I attach a patch to implement dependencies on shared objects.
> As some of you may remember, the purpose of this patch is to record
> dependencies on shared objects, such as roles and tablespaces, from
> regular database objects. This is done on a new shared system catalog
> called pg_shdepend, so that when a backend wants to drop any shared
> object, it can easily verify whether it is referenced in other database.
Will work on applying this next.
> - added a dependency type. There are three types: PIN, same as normal
> dependencies; OWNER, for roles that own objects; NORMAL, all the rest
> (roles in the Acl and tablespaces).
> I needed to separate the OWNER entries to support changing ownership
> of objects without having to poke the whole Acl for the object.
Although I don't have any particular objection to the OWNER/NORMAL
distinction, your explanation doesn't seem to make sense. Don't you
have to poke the Acl anyway, if it's non-null? Else the grantor values
will be wrong.
regards, tom lane