From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, "David E(dot) Wheeler" <david(at)kineticode(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org, Stephen Frost <sfrost(at)snowman(dot)net> |
Subject: | Re: Controlling changes in plpgsql variable resolution |
Date: | 2009-10-20 05:41:07 |
Message-ID: | 200910200541.n9K5f7209148@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> > Tom Lane wrote:
> >> (a) Nobody but me is afraid of the consequences of treating this as
> >> a GUC. (I still think you're all wrong, but so be it.)
>
> > I can't say I'm happy about it. For one thing, the granularity seems all
> > wrong. I'd rather be able to keep backwards compatibility on a function
> > by function basis. Or would the value of the GUC at the time the
> > function was created stick?
>
> Again, I can't see making a GUC that works fundamentally differently
> from the rest of them.
>
> Given this round of feedback, I make the following proposal:
>
> 1. Invent a GUC that has the settings backwards-compatible,
> oracle-compatible, throw-error (exact spellings TBD). Factory default,
> at least for a few releases, will be throw-error. Make it SUSET so that
> unprivileged users can't break things by twiddling it; but it's still
> possible for the DBA to set it per-database or per-user.
>
> 2. Also invent a #option syntax that allows the GUC to be overridden
> per-function. (Since the main GUC is SUSET, we can't just use a
> per-function SET to override it. There are other ways we could do this
> but none seem less ugly than #option...)
I don't see the logic to making the setting SUSET. The user wrote the
function; what logic is there to say the resolution rules are not under
their control?
Also, I think to GUC that throws an error or not is a lot safer than one
that changes resolution semantics. Changing resolution semantics sounds
like the autocommit GUC to me. :-O
Also, I am not really keen on the "keep it for a few releases" --- we
often don't come back to finally change it, so maybe just error/no error
and using Oracle semantics is the way to go, with 'error' as the
default. Our change in casting for 8.3 seemed much more major than
this.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
From | Date | Subject | |
---|---|---|---|
Next Message | Itagaki Takahiro | 2009-10-20 05:41:11 | UTF8 with BOM support in psql |
Previous Message | Bruce Momjian | 2009-10-20 05:22:59 | Re: Application name patch - v2 |