Re: PGXS: REGRESS_OPTS=--load-language=plpgsql

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, David Christensen <david(at)endpoint(dot)com>, "David E(dot) Wheeler" <david(at)kineticode(dot)com>, Dimitri Fontaine <dfontaine(at)hi-media(dot)com>, Takahiro Itagaki <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>, David Fetter <david(at)fetter(dot)org>, Euler Taveira de Oliveira <euler(at)timbira(dot)com>, PG Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PGXS: REGRESS_OPTS=--load-language=plpgsql
Date: 2010-02-21 19:25:28
Message-ID: 201002211925.o1LJPSn18069@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> > On Feb 20, 2010, at 10:56 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >> There is a very clear set of behaviors that CORL ought to have given
> >> the precedents of our other COR commands. If we don't make it do
> >> things that way then we are going to surprise users, and we are also
> >> going to paint ourselves into a corner because we won't be able to
> >> fix it later without creating compatibility gotchas.
>
> > Exactly. I agree completely.
>
> Attached is a draft patch (no doc changes) that implements CREATE OR
> REPLACE LANGUAGE following the semantics used in CREATE OR REPLACE
> FUNCTION, namely that in addition to whatever privileges you need to
> do the CREATE, you need to be owner of the existing entry if any;
> and the recorded ownership and permissions don't change. It's not bad
> at all --- net addition of 40 lines. So if we want to go at it this
> way, it's certainly feasible.
>
> I've got mixed feelings about the ownership check. If you get past
> the normal CREATE LANGUAGE permission checks, then either you are
> superuser, or you are database owner and you are trying to recreate
> a language from a pg_pltemplate entry with tmpldbacreate true.
> So it would fail only for a database owner who's trying to do
> C.O.R.L. on a superuser-installed language. Which arguably is a case
> we ought to allow. On the other hand, the case where not throwing an
> error would really matter is in trying to do pg_restore --single, and
> in that case even if we allowed the C.O.R.L. it would still spit up on
> the ALTER LANGUAGE OWNER that pg_dump is presumably going to emit right
> afterwards (except if using --no-owner, I guess). So I'm not sure
> we'd really be gaining much by omitting the ownership check, and it
> would certainly be less consistent with other C.O.R. commands if we
> don't apply such a check.

How is pg_migrator affected by this? It always loads the the dump as
the super-user. How will the pg_dump use CREATE OR REPLACE LANGUAGE?

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
PG East: http://www.enterprisedb.com/community/nav-pg-east-2010.do
+ If your life is a hard drive, Christ can be your backup. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dimitri Fontaine 2010-02-21 19:46:41 Re: scheduler in core
Previous Message Gokulakannan Somasundaram 2010-02-21 19:11:52 A thought on Index Organized Tables