Re: Suggestions please: names for function cachabilityattributes
Peter Eisentraut <peter_e@gmx.net>
From: Peter Eisentraut <peter_e@gmx.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: mlw <markw@mohawksoft.com>, <pgsql-hackers@postgresql.org>
Date: 2002-04-03T23:19:31Z
Lists: pgsql-hackers
Tom Lane writes: > Peter Eisentraut <peter_e@gmx.net> 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 peter_e@gmx.net