A question based on do-functions-really-default-to-deterministic: When creating functions without the [NOT] DETERMINISTIC clause, the server is free to treat them as deterministic. This is documented both for ASA 8 and for newer versions up to SA 12. I'm about to add that particular clause for all functions (and a lot of them do have side-effects), but beforehand I'd like to know if the server's treatment of functions has (significantly) changed between ASA 8 and SA 12 w.r.t. deterministic behaviour - i.e. will SA 12 make more use of function result caching than ASA 8? Note that I'm generally using those functions with side-effects in simple queries such as
so there's no need to call the same function multiple times within the same query. (For queries that use functions inside select lists, where clauses and the like, I would expect there have been optimizations to cache results.) |
Sidenote: I have always had the impression the NON DETERMINISTIC clause had been introduced in V9...but it was in 8.0.1, and so I could have used in all those years in my V8 setup. Some kind of deja vĂ», methinks:)