]> granicus.if.org Git - postgresql/commit
Have REASSIGN OWNED work on extensions, too
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 3 Jul 2012 19:09:59 +0000 (15:09 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 3 Jul 2012 19:09:59 +0000 (15:09 -0400)
commit0c7b9dc7d037c4465227dc2300ff48019feeba37
tree425cb7144ef4aa08de6bd979596b75fc7bb6717b
parentb33385b89d30ad3daa63b398e56a5e3822fd59c6
Have REASSIGN OWNED work on extensions, too

Per bug #6593, REASSIGN OWNED fails when the affected role has created
an extension.  Even though the user related to the extension is not
nominally the owner, its OID appears on pg_shdepend and thus causes
problems when the user is to be dropped.

This commit adds code to change the "ownership" of the extension itself,
not of the contained objects.  This is fine because it's currently only
called from REASSIGN OWNED, which would also modify the ownership of the
contained objects.  However, this is not sufficient for a working ALTER
OWNER implementation extension.

Back-patch to 9.1, where extensions were introduced.

Bug #6593 reported by Emiliano Leporati.
src/backend/catalog/pg_shdepend.c
src/backend/commands/extension.c
src/include/commands/extension.h