In PL/Java's function annotations, 'type' has been used for the
volatility category:


@Function(type=IMMUTABLE)
public static String hello() { return "Hello, world!"; }


It seems a bit infelicitous because you would probably sooner guess that
'type' was telling you something about the function's _data_ type (and
indeed there are times when PL/Java can't infer the SQL data type and you
need to say it in the annotation, which has to be done with a different,
less obvious keyword because 'type' has been used for the volatility
category).  :(

It has been that way since the first inchoate commits of annotation code
eleven years ago, but I don't think it was ever usably complete until
2013. That's since the most recent numbered PL/Java release (there
hasn't been one since 1.4.3 in 2011), so it is possible to say there
hasn't yet been a numbered release featuring the code annotations.

So I am thinking there may never be a better time to change those keywords,
if they are worth changing, so 'type' would be for the function return type,
and some other word for the volatility category. At this stage, a change
might inconvenience some people who have been building from the github head
the last couple of years, but it couldn't affect anyone else.

One obvious choice for that word would be 'volatility' - after all,
'volatility category' is the term used in the PostgreSQL manual.  But
it's long, and five syllables to say, and the goofy redundancy in an
annotation like (volatility=VOLATILE) makes me snicker the same way
I can't help when I type 'set log_error_verbosity to verbose'.

Argh, verbose verbosity AND volatile volatility.

But I've been trying think of something short, clear, preferably
monosyllabic, less geeky than 'v8y', and I don't have a winner yet.
I've flirted with 'hoist', from thinking about the kind of optimization
the category is there to control ...

hoist=STABLE    hoist=IMMUTABLE    hoist=VOLATILE

meh ...

effect=STABLE   effect=IMMUTABLE   effect=VOLATILE

...

Is anyone thinking of an obvious, perfect short word for that thing
that is just eluding me at the moment? I'm starting to warm to 'effect'.

-Chap


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to