Tom Lane writes:

> Peter Eisentraut <[EMAIL PROTECTED]> writes:
> > It could also be considered deterministic, strict, cacheable,
> > mathematically sensible, real, pleasant, or good. ;-)
>
> > Out of those, I believe "const" is the worst term, because saying "sin(x)
> > is a constant function" sounds pretty wrong.
>
> Yeah, that was my problem with "const" too.  But "deterministic" has the
> same problem --- in the ordinary meaning of the term, a function doesn't
> become nondeterministic just because it depends on SET TIMEZONE as well
> as its explicit parameters.  It's also too long and too hard to spell
> correctly ;-).

As it turns out, Oracle, IBM, and Microsoft use it for exactly the same
purpose, and it is standard ...

If you're not happy with labelling case 2 nondeterministic, add an
additional clause, like USES EXTERNAL STATE.  We could dig through all the
adjectives in the world, but I don't think any will catch the situation
quite like saying what's actually going on.

> So far the only suggestion I've seen that really makes me happy is
> "volatile" for case 3.

Volatile means "subject to rapid or unexpected change", which is not
really what case 3 is.

> Brad's idea of "invariant" for case 1 isn't too bad, but as a partner
> for "cacheable" it seems a bit weak; if you haven't looked at the
> manual lately, will you remember which is which?

Actually, IBM has VARIANT as an alias for NOT DETERMINISTIC (and NOT
VARIANT for DETERMINISTIC).

-- 
Peter Eisentraut   [EMAIL PROTECTED]


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to