Top Description Fields Constructors Methods
org.hibernate.dialect.function

public Class CommonFunctionFactory

extends Object
Class Inheritance
Imports
java.util.Date, .Arrays, org.hibernate.boot.model.FunctionContributions, org.hibernate.dialect.Dialect, org.hibernate.dialect.function.array.ArrayAggFunction, .ArrayAndElementArgumentTypeResolver, .ArrayAndElementArgumentValidator, .ArrayArgumentValidator, .ArrayConcatElementFunction, .ArrayConcatFunction, .ArrayConstructorFunction, .ArrayContainsOperatorFunction, .ArrayContainsUnnestFunction, .ArrayOverlapsOperatorFunction, .ArrayOverlapsUnnestFunction, .ArrayGetUnnestFunction, .ArrayRemoveIndexUnnestFunction, .ArrayReplaceUnnestFunction, .ArraySetUnnestFunction, .ArraySliceUnnestFunction, .ArrayToStringFunction, .ArrayViaArgumentReturnTypeResolver, .CockroachArrayFillFunction, .ElementViaArrayArgumentReturnTypeResolver, .H2ArrayContainsFunction, .H2ArrayFillFunction, .H2ArrayOverlapsFunction, .H2ArrayPositionFunction, .H2ArrayPositionsFunction, .H2ArrayRemoveFunction, .H2ArrayRemoveIndexFunction, .H2ArrayReplaceFunction, .H2ArraySetFunction, .H2ArrayToStringFunction, .HSQLArrayConstructorFunction, .HSQLArrayFillFunction, .HSQLArrayPositionFunction, .HSQLArrayPositionsFunction, .HSQLArrayRemoveFunction, .HSQLArraySetFunction, .HSQLArrayToStringFunction, .OracleArrayConcatElementFunction, .OracleArrayConcatFunction, .OracleArrayFillFunction, .OracleArrayOverlapsFunction, .OracleArrayGetFunction, .OracleArrayLengthFunction, .OracleArrayPositionFunction, .OracleArrayPositionsFunction, .OracleArrayRemoveFunction, .OracleArrayRemoveIndexFunction, .OracleArrayReplaceFunction, .OracleArraySetFunction, .OracleArraySliceFunction, .OracleArrayToStringFunction, .OracleArrayTrimFunction, .PostgreSQLArrayConcatElementFunction, .PostgreSQLArrayConcatFunction, .PostgreSQLArrayFillFunction, .PostgreSQLArrayPositionFunction, .PostgreSQLArrayConstructorFunction, .OracleArrayAggEmulation, .OracleArrayConstructorFunction, .OracleArrayContainsFunction, .PostgreSQLArrayPositionsFunction, .PostgreSQLArrayTrimEmulation, org.hibernate.query.sqm.function.SqmFunctionRegistry, org.hibernate.query.sqm.produce.function.ArgumentTypesValidator, .StandardArgumentsValidators, .StandardFunctionArgumentTypeResolvers, .StandardFunctionReturnTypeResolvers, org.hibernate.sql.ast.SqlAstNodeRenderingMode, org.hibernate.type.BasicType, .BasicTypeRegistry, .StandardBasicTypes, org.hibernate.type.spi.TypeConfiguration

Enumeratoes common function template definitions. Centralized for easier use from dialects.
Authors
Steve Ebersole, Gavin King

Field Summary

Modifier and TypeField and Description
private final BasicType<Boolean>
private final BasicType<Character>
private final BasicType<Date>
private final BasicType<Double>
private final SqmFunctionRegistry
private final BasicType<Integer>
private final BasicType<Long>
private final BasicType<String>
private final BasicType<Date>
private final BasicType<Date>
private final TypeConfiguration
private static final String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
public void
public void
public void
aggregates(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)

public void
array()

H2, HSQL array() constructor function

public void
array_hsql()

H2, HSQL array() constructor function

public void
array_oracle()

Oracle array() constructor function

public void
array_postgresql()

CockroachDB and PostgreSQL array() constructor function

public void
array_spanner()

Google Spanner array() constructor function

public void
arrayAggregate()

H2, HSQL, CockroachDB and PostgreSQL array_agg() function

public void
arrayAggregate_jsonArrayagg()

Oracle array_agg() function

public void
arrayAppend_operator()

H2 and HSQLDB array_append() function

public void
arrayAppend_oracle()

Oracle array_append() function

public void
arrayAppend_postgresql()

CockroachDB and PostgreSQL array_append() function

public void
arrayConcat_operator()

H2 and HSQLDB array_concat() function

public void
arrayConcat_oracle()

Oracle array_concat() function

public void
arrayConcat_postgresql()

CockroachDB and PostgreSQL array_concat() function

public void
arrayContains_h2(int maximumArraySize)

H2 array_contains() function

public void
arrayContains_hsql()

HSQL array_contains() function

public void
arrayContains_oracle()

Oracle array_contains() function

public void
arrayContains_postgresql()

CockroachDB and PostgreSQL array contains operator

public void
arrayFill_cockroachdb()

Cockroach array_fill() function

public void
arrayFill_h2()

H2 array_fill() function

public void
arrayFill_hsql()

HSQLDB array_fill() function

public void
arrayFill_oracle()

Oracle array_fill() function

public void
arrayFill_postgresql()

PostgreSQL array_fill() function

public void
arrayGet_bracket()

CockroachDB and PostgreSQL array_get() function via bracket syntax

public void
arrayGet_h2()

H2 array_get() function via bracket syntax

public void
arrayGet_oracle()

Oracle array_get() function

public void
arrayGet_unnest()

HSQL array_get() function

public void
arrayLength_cardinality()

H2, HSQLDB, CockroachDB and PostgreSQL array_length() function

public void
arrayLength_oracle()

Oracle array_length() function

public void
arrayOverlaps_h2(int maximumArraySize)

H2 array_overlaps() function

public void
arrayOverlaps_hsql()

HSQL array_overlaps() function

public void
arrayOverlaps_oracle()

Oracle array_overlaps() function

public void
arrayOverlaps_postgresql()

CockroachDB and PostgreSQL array overlaps operator

public void
arrayPosition_h2(int maximumArraySize)

H2 array_position() function

public void
arrayPosition_hsql()

HSQL array_position() function

public void
arrayPosition_oracle()

Oracle array_position() function

public void
arrayPosition_postgresql()

CockroachDB and PostgreSQL array_position() function

public void
arrayPositions_h2(int maximumArraySize)

H2 array_positions() function

public void
arrayPositions_hsql()

HSQL array_positions() function

public void
arrayPositions_oracle()

Oracle array_positions() function

public void
arrayPositions_postgresql()

CockroachDB and PostgreSQL array_positions() function

public void
arrayPrepend_operator()

H2 and HSQLDB array_prepend() function

public void
arrayPrepend_oracle()

Oracle array_prepend() function

public void
arrayPrepend_postgresql()

CockroachDB and PostgreSQL array_prepend() function

public void
arrayRemove()

CockroachDB and PostgreSQL array_remove() function

public void
arrayRemove_h2(int maximumArraySize)

H2 array_remove() function

public void
arrayRemove_hsql()

HSQL array_remove() function

public void
arrayRemove_oracle()

Oracle array_remove() function

public void
arrayRemoveIndex_h2(int maximumArraySize)

H2 array_remove_index() function

public void
arrayRemoveIndex_oracle()

Oracle array_remove_index() function

public void
arrayRemoveIndex_unnest(boolean castEmptyArrayLiteral)

HSQL, CockroachDB and PostgreSQL array_remove_index() function

public void
arrayReplace()

CockroachDB and PostgreSQL array_replace() function

public void
arrayReplace_h2(int maximumArraySize)

H2 array_replace() function

public void
arrayReplace_oracle()

Oracle array_replace() function

public void
arrayReplace_unnest()

HSQL array_replace() function

public void
arraySet_h2(int maximumArraySize)

H2 array_set() function

public void
arraySet_hsql()

HSQL array_set() function

public void
arraySet_oracle()

Oracle array_set() function

public void
arraySet_unnest()

CockroachDB and PostgreSQL array_set() function

public void
arraySlice()

H2 array_slice() function

public void
arraySlice_operator()

CockroachDB and PostgreSQL array_slice() function

public void
arraySlice_oracle()

Oracle array_slice() function

public void
arraySlice_unnest()

HSQL array_slice() function

public void
arrayToString_h2(int maximumArraySize)

H2 array_to_string() function

public void
arrayToString_hsql()

HSQL array_to_string() function

public void
arrayToString_oracle()

Oracle array_to_string() function

public void
arrayToString_postgresql()

CockroachDB and PostgreSQL array_to_string() function

public void
arrayTrim_oracle()

Oracle array_trim() function

public void
arrayTrim_trim_array()

H2, HSQLDB, CockroachDB and PostgreSQL array_trim() function

public void
arrayTrim_unnest()

PostgreSQL array_trim() emulation for versions before 14

public void
ascii()

Very widely supported, but we don't treat this as a "standard" function because it's hard to emulate on any database that doesn't have it (e.g. Derby) and because, well, ASCII.

public void
atan2_atn2()

Transact-SQL atan2 is misspelled

public void
avg_castingNonDoubleArguments(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)

public void
public void
bitAndOr()

These are aggregate functions taking one argument!

public void
bitandorxornot_binAndOrXorNot()

Bitwise operators, not aggregate functions!

public void
bitandorxornot_bitAndOrXorNot()

Binary bitwise operators, not aggregate functions!

public void
bitandorxornot_operator()

Binary bitwise operators, not aggregate functions!

public void
public void
public void
bitLength_pattern(String pattern, String clobPattern)

public void
public void
public void
public void
cbrt()

public void
public void
public void
characterLength_len()

Transact SQL-style

public void
characterLength_length(SqlAstNodeRenderingMode argumentRenderingMode)

Oracle-style

public void
public void
public void
public void
public void
collate()

Use the 'collate' operator which exists on at least Postgres, MySQL, Oracle, and SQL Server

public void
collate_quoted()

HSQL requires quotes around certain collations

public void
public void
concat_pipeOperator()

Almost every database

public void
public void
corr()

public void
cosh()

public void
public void
cot()

public void
public void
public void
public void
date()

public void
datediff()

MySQL style, returns the number of days between two dates

public void
datepartDatename()

Transact SQL-style

public void
public void
dateTrunc()

H2, DB2 and PostgreSQL native date_trunc() function

public void
dateTrunc_datetrunc()

SQLServer native datetrunc() function

public void
public void
public void
public void
public void
public void
degrees_acos()

For Oracle, HANA

public void
everyAny()

These are aggregate functions taking one argument!

public void
everyAny_boolAndOr()

These are aggregate functions taking one argument, for databases that can directly aggregate both boolean columns and predicates!

public void
everyAny_minMaxCase()

These are aggregate functions taking one argument, for Oracle and Sybase.

public void
everyAny_minMaxIif()

These are aggregate functions taking one argument, for SQL Server.

public void
everyAny_sumCase(boolean supportsPredicateAsExpression)

These are aggregate functions taking one argument, for databases that have to emulate the boolean aggregation functions using sum() and case.

public void
format_dateFormat()

MySQL-style (also Ingres)

public void
format_formatdatetime()

H2-style (uses Java's SimpleDateFormat directly so no need to translate format)

public void
format_toChar()

Usually Oracle-style (except for Informix which quite close to MySQL-style)

public void
format_toVarchar()

HANA's name for to_char() is still Oracle-style

public void
hourMinuteSecond()

Note that we include these for completeness, but since their names collide with the HQL abbreviations for extract(), they can't actually be called from HQL.

public void
public void
public void
public void
public void
insert_overlay()

Postgres

public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
length_characterLength()

ANSI SQL-style

public void
public void
listagg(String emptyWithinReplacement)

public void
public void
listagg_list(String stringType)

public void
public void
public void
ln_log()

For SQL Server and Sybase

public void
public void
public void
locate_charindex()

Transact SQL-style

public void
locate_positionSubstring()

locate() in terms of ANSI position() and substring()

public void
log()

For databases where the first parameter is the base

public void
public void
log10_log()

For Oracle and HANA

public void
log2()

public void
public void
log_log()

SQL Server defines parameters in reverse order

public void
log_loglog()

For Sybase

public void
public void
makedateMaketime()

MySQL/CUBRID

public void
public void
math()

public void
md5()

public void
public void
median_percentileCont(boolean over)

public void
median_percentileCont_castDouble()

CockroachDB lacks implicit casting: https://github.com/cockroachdb/cockroach/issues/89965

public void
public void
public void
public void
public void
public void
public void
public void
octetLength_pattern(String pattern, String clobPattern)

public void
overlay()

ANSI SQL form, supported by Postgres, HSQL

public void
overlayLength_overlay(boolean withCodeUnits)

For DB2 which has a broken implementation of overlay()

public void
pad()

public void
pad_fill()

SAP DB

public void
public void
pad_replicate()

Transact-SQL

public void
pad_space()

In MySQL the third argument is required

public void
pi()

public void
public void
position()

ANSI-style

public void
public void
public void
radians_acos()

For Oracle, HANA

public void
rand()

Returns double between 0.0 and 1.0.

public void
public void
public void
public void
public void
public void
public void
public void
public void
round_floor()

Derby (only works if the second arg is constant, as it almost always is)

public void
round_round()

SQL Server

public void
round_roundFloor()

PostgreSQL (only works if the second arg is constant, as it almost always is)

public void
rownum()

H2/HSQL-style

public void
public void
rownumRowid()

Oracle-style

public void
public void
sha()

public void
sha1()

public void
sha2()

public void
sinh()

public void
public void
public void
public void
public void
stddev()

Warning: the semantics of this function are inconsistent between DBs.

public void
public void
stddevPopSamp_stdevp()

SQL Server-style

public void
stddevSamp_sumCount()

DB2 before 11

public void
public void
substring()

Not the same as ANSI-style substring!

public void
substring_substr()

Oracle, and many others

public void
substring_substringLen()

Transact SQL-style (3 required args)

public void
substringFromFor()

ANSI-style substring

public void
public void
sysdateExplicitMicros()

MySQL 5.7 precision defaults to seconds, but microseconds is better

public void
sysdateParens()

MySQL requires the parens in sysdate()

public void
public void
tanh()

public void
public void
time()

public void
public void
public void
public void
public void
public void
private void
trunc(String truncPattern, String twoArgTruncPattern, TruncFunction.DatetimeTrunc datetimeTrunc, String toDateFunction)

private void
public void
public void
public void
public void
trunc_floor()

Derby (only works if the second arg is constant, as it almost always is)

public void
trunc_round_datetrunc()

SQL Server >= 16

public void
trunc_roundMode()

SAP HANA

public void
public void
public void
variance()

Warning: the semantics of this function are inconsistent between DBs.

public void
public void
public void
varPopSamp_varp()

SQL Server-style

public void
varSamp_sumCount()

DB2 before 11

public void
public void
public void
public void
yearMonthDay()

Note that we include these for completeness, but since their names collide with the HQL abbreviations for extract(), they can't actually be called from HQL.

public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait