From:
Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To:
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc:
Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: ALTER OBJECT any_name SET SCHEMA name
Date:
2010-11-04 15:16:17
Message-ID:
m2wrotktku.fsf@2ndQuadrant.fr (view raw or flat )
Thread:
2010-10-30 21:05:31 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-30 22:59:30 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-10-31 12:46:29 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 16:59:45 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-10-31 17:16:36 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 17:38:18 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 17:46:31 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-10-31 18:19:08 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 19:10:07 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-10-31 19:42:37 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 20:35:28 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-10-31 21:46:56 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 22:02:55 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-10-31 22:09:23 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-02 13:03:44 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-03 16:10:12 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-03 21:18:32 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-03 21:32:25 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 14:06:48 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 14:27:45 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-04 14:37:37 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 14:51:08 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-11-04 15:16:17 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 19:39:31 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 21:55:36 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-05 09:44:22 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-21 04:22:23 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-21 04:23:52 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-21 12:53:57 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-21 18:03:17 from David Fetter <david(at)fetter(dot)org>
2010-11-21 18:36:59 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-21 18:45:30 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-21 21:47:56 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-23 03:31:30 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-23 08:18:56 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-25 22:00:06 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-26 22:56:04 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-27 19:17:48 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-28 13:06:41 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-04 15:48:12 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-04 14:39:18 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-04 14:52:53 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 15:05:24 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-04 15:18:13 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 15:33:22 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-11-04 15:50:51 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-04 19:57:10 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 19:42:53 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-04 21:57:33 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-05 09:49:34 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-05 16:03:38 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-05 16:16:37 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-05 16:48:02 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-11-05 17:06:59 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-05 17:16:52 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-11-05 18:14:43 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-05 19:30:27 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2010-11-05 19:58:00 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-11-05 20:04:48 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2010-11-05 20:15:30 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 15:15:48 from Bernd Helmle <mailings(at)oopsware(dot)de>
2010-10-31 16:45:53 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2010-10-31 18:42:53 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-10-31 19:38:31 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
Lists:
pgsql-hackers
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> Not having read the patch, but ... the idea that was in the back of
> my mind was to have a generic AlterObjectNamespace function that
> would take parameters approximately like the following:
>
> OID of catalog containing object
> Column number of catalog's namespace column (Anum_xxx constant)
> OID of intended new namespace
Ah, the trick is to use the Anum_xxx, of course. I couldn't get rid of
thinking how to dynamically access by name... will have a try at that,
thanks for the idea.
> You could do a generic heap_open() on the catalog using the OID,
> and then use heap_modify_tuple to apply the namespace column update.
Thanks for pointing me to the right APIs: finding them is where the time
is mostly spent as far as I'm concerned.
> It might be nice to include the "object already exists" check here
> too, which could probably be done if in addition the column number
> of the name column were passed in. Permission checks too, if the
> owner column number were passed in. Etc.
Well it seems that depending on the object, sometime only superusers are
allowed to edit things, and sometime the owner too. Will add a boolean
superuser_only in the prototype.
Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
In response to
pgsql-hackers by date
Next :From: Dimitri FontaineDate: 2010-11-04 15:18:13
Subject : Re: ALTER OBJECT any_name SET SCHEMA name
Previous :From : Robert HaasDate : 2010-11-04 15:05:24
Subject : Re: ALTER OBJECT any_name SET SCHEMA name