Re: REASSIGN OWNED lacks support for FDWs

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-02-22T08:37:36Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add missing support for removing foreign data wrapper / server privileges

Attachments

(2012/02/22 9:30), Tom Lane wrote:
> Alvaro Herrera<alvherre@commandprompt.com>  writes:
>> Excerpts from Alvaro Herrera's message of mar feb 21 15:54:03 -0300 2012:
>>> Excerpts from Tom Lane's message of lun feb 20 12:37:45 -0300 2012:
>>>> As per http://archives.postgresql.org/pgsql-general/2012-02/msg00304.php
>>>> there is no switch case in shdepReassignOwned for foreign data wrappers.
> 
>>> I'm gonna take a stab at fixing this now (the simple way).
> 
>> Here's the patch I have; last minute opinions.  I intend to push a
>> backpatch to 9.1 and 9.0.  8.4 has the same problem, but since Heikki
>> punted in e356743f3ed45c36dcc4d0dbf6c1e8751b3d70b5, I'm not going to
>> bother either.
> 
> Looks roughly like what I expected, but I haven't tested it.

I did some tests.  The results look good to me.  Please find attached a
logfile.  My only concern on the patch is

+static void
+AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid
newOwnerId)
+{
+	Form_pg_foreign_server form;

-	srvId = HeapTupleGetOid(tup);
 	form = (Form_pg_foreign_server) GETSTRUCT(tup);

 	if (form->srvowner != newOwnerId)
@@ -366,10 +388,15 @@ AlterForeignServerOwner(const char *name, Oid
newOwnerId)
 		/* Superusers can always do it */
 		if (!superuser())
 		{

I wonder if superusers can always do it.  For example, is it OK for
superusers to change the ownership of a foreign server owned by old_role
to new_role that doesn't have USAGE privilege on its foreign data wrapper.

Best regards,
Etsuro Fujita