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>