H2 documentation says: "Deterministic functions must always return the same
value for the same parameters."
In sql query example below, heavy "datediff" deterministic function will be
called 4 times per row.
Example:
Select
avg(datediff('s',ts1,ts2)) as avg_diff,
min(datediff('s',ts1,ts2)) as min_diff,
max(datediff('s',ts1,ts2)) as max_diff
>From table
I'd expected function was called once per row.
H2 have only optimization for function with constant arguments, however
previous query obviously can be optimized. We need to have a workaround
there.
See IGNITE-4035 <https://issues.apache.org/jira/browse/IGNITE-4035>