For whatever reason JPA and a few of the databases do not categorize
coalesce and nullif as functions - hence the "not technically a function"
part.
However in Hibernate I have defined them as functions for the sake of users
being able to plug in custom function templates.
On Tue, May 30, 2017 at 5:14 AM Sanne Grinovero <sanne(a)hibernate.org> wrote:
Hi Steve,
just a curiosity; for `coalesce` and `nullif` you stated "not
technically a function, but supported as such to allow overriding".
What does it mean?
Thanks!
Sanne
On 29 May 2017 at 22:29, Steve Ebersole <steve(a)hibernate.org> wrote:
> Hibernate has always defined a set of functions that should always be
> available on every Dialect/database. JPA formalized some of these, but
> Hibernate still had a superset. So I wanted to formalize the complete
set
> of supported functions. Here is the formalized list of what Hibernate
has
> always considered the "supported list":
>
> - those defined by JPA
> - abs
> - avg
> - concat
> - count
> - current_date
> - current_time
> - current_timestamp
> - length
> - locate
> - lower
> - max
> - min
> - mod
> - sqrt
> - substring
> - sum
> - trim
> - upper
> - Hibernate extensions
> - bit_length
> - coalesce - not technically a function, but supported as such to
> allow overriding
> - cast
> - day - generally defined as `extract(day from ?1)`
> - extract
> - hour - generally defined as `extract(hour from ?1)`
> - minute - generally defined as `extract(minute from ?1)`
> - month - generally defined as `extract(month from ?1)`
> - nullif - not technically a function, but supported as such to
allow
> overriding
> - second - generally defined as `extract(second from ?1)`
> - str - generally defined as `cast(?1 as CHAR )`
> - year - generally defined as `extract(year from ?1)`
>
>
> Additions/subtractions anyone would like to discuss?
>
> One question I has was in regards to str being defined as `cast(?1 as
CHAR
> )` by default - specifically using CHAR instead of VARCHAR. Some
databases
> apply padding for the size of the datatype when casting a numeric to a
CHAR
> which is not an unreasonable thing to do.
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev