| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | "Simon Riggs" <simon(at)2ndquadrant(dot)com> |
| Cc: | "Troels Arvin" <troels(at)arvin(dot)dk>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: DETERMINISTIC as synonym for IMMUTABLE |
| Date: | 2004-10-19 22:31:04 |
| Message-ID: | 26281.1098225064@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
"Simon Riggs" <simon(at)2ndquadrant(dot)com> writes:
> AFAICS, your info shows that the standard's definition of DETERMINISTIC is
> confusing and contradictory. Most people's interpretation would be that
> DETERMINISTIC was the same as IMMUTABLE, so we should make the former a
> synonym for the latter and document the possible difference of
> interpretation. Seriously, if you can't put a blade of grass between them
> then they're OK to be equated.
The problem is that you *can* put a blade of grass between them, and
sooner or later we may wish to make the distinction. In particular
I can think of optimization possibilities that rely on being able to
identify a function as being a pure function of the database state.
(This would mostly come into play if we ever try to support function
result caching; we don't now, but certainly it's been asked for often
enough.) If we equate DETERMINISTIC with IMMUTABLE then we won't be
able to use DETERMINISTIC to describe cache-able functions.
Troels's later followup says that SQL2003 has redefined DETERMINISTIC
to in fact mean IMMUTABLE; if so I suppose we'll have to go with the
flow. I have not looked closely at that version to see if I agree with
his reading.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2004-10-19 22:35:16 | Re: tsearch2 windows make failure |
| Previous Message | Simon Riggs | 2004-10-19 22:22:31 | Re: plans for bitmap indexes? |