From:
Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To:
Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc:
Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: ALTER OBJECT any_name SET SCHEMA name
Date:
2010-11-04 14:37:37
Message-ID:
m2wrotnoi6.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
Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
>> /* check for duplicate name (more friendly than unique-index failure) */
>> if (SearchSysCacheExists2(TYPENAMENSP,
>> CStringGetDatum(name),
>> ObjectIdGetDatum(nspOid)))
>
> Hmm, this check is wrong anyway, because you're looking in the pg_type
> syscache for objects from an arbitrary catalog. That needs to be fixed
> somehow, but perhaps it needs to be handled by the callers, not in this
> routine. Otherwise you're going to need to pass the syscache ID, as
> well as Datums identifying the object, and the number of Datums.
How embarrassing. I wonder why this works, too:
dim=# alter operator utils.@>(utils.ltree, utils.ltree) set schema public;
ALTER OPERATOR
dim=# alter operator @>(utils.ltree, utils.ltree) set schema utils;
ALTER OPERATOR
We haveĀ :
static void
AlterOperatorNamespace_internal(Relation rel, Oid operOid, Oid nspOid)
{
...
CheckSetNamespace(oldNspOid, nspOid,
OperatorRelationId, operOid, NameStr(oprForm->oprname));
Well, I'll go fix as you say, putting the check back into the
callers. That won't help a bit with the code duplication feeling we have
when reading the patch, though. Any idea on this front?
Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
In response to
Responses
pgsql-hackers by date
Next :From: Tom LaneDate: 2010-11-04 14:39:16
Subject : Re: Alter column to type serial
Previous :From : Alvaro HerreraDate : 2010-11-04 14:27:45
Subject : Re: ALTER OBJECT any_name SET SCHEMA name