From: | 'Bruce Momjian' <bruce(at)momjian(dot)us> |
---|---|
To: | Dwayne Towell <dwayne(at)docketnavigator(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #8516: Calling VOLATILE from STABLE function |
Date: | 2013-10-10 23:15:46 |
Message-ID: | 20131010231546.GB7092@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Thu, Oct 10, 2013 at 04:10:35PM -0700, Dwayne Towell wrote:
> > According to the documentation, f() should be marked VOLATILE also, since
> > calling f() produces side effects. PostgreSQL does not give a warning (or
> > better yet, an error); I think it should.
>
> I think the answer is that function authors are required to prevent
> functions they mark as STABLE from calling VOLATILE functions.
>
> --
>
> I understand it's an error (at least usually), my question/issue is why does
> PostgreSQL NOT give at least a warning when a programmer (probably
> accidentally) calls a VOLATILE function in one that he has specifically
> tagged as STABLE? The compiler has all the information to notify the
> programmer of a mistake, but isn't. This violates a fundamental principle of
> software engineering--take every opportunity to prevent errors.
Well, we can't walk the function tree to know all called functions, and
those they call, so we don't even try.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2013-10-11 00:22:30 | Re: BUG #8467: Slightly confusing pgcrypto example in docs |
Previous Message | Bruce Momjian | 2013-10-10 23:14:32 | Re: BUG #8467: Slightly confusing pgcrypto example in docs |