Package org.hibernate.dialect.function
Class CommonFunctionFactory
- java.lang.Object
-
- org.hibernate.dialect.function.CommonFunctionFactory
-
public class CommonFunctionFactory extends Object
Enumeratoes common function template definitions. Centralized for easier use from dialects.
-
-
Constructor Summary
Constructors Constructor Description CommonFunctionFactory(QueryEngine queryEngine)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
adddateSubdateAddtimeSubtime()
MySQL stylevoid
addMonths()
void
addYearsMonthsDaysHoursMinutesSeconds()
void
aggregates(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)
void
ascii()
void
atan2_atn2()
Transact-SQL atan2 is misspelledvoid
avg_castingNonDoubleArguments(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)
void
bitand()
void
bitAndOr()
These are aggregate functions taking one argument!void
bitandorxornot_binAndOrXorNot()
Bitwise operators, not aggregate functions!void
bitandorxornot_bitAndOrXorNot()
Binary bitwise operators, not aggregate functions!void
bitandorxornot_operator()
Binary bitwise operators, not aggregate functions!void
bitLength()
void
bitLength_pattern(String pattern)
void
bitLength_pattern(String pattern, String clobPattern)
void
bitnot()
void
bitor()
void
bitxor()
void
cbrt()
void
ceiling_ceil()
void
char_chr()
void
characterLength_len()
Transact SQL-stylevoid
characterLength_length(String clobPattern)
void
characterLength_length(SqlAstNodeRenderingMode argumentRenderingMode)
Oracle-stylevoid
chr_char()
void
coalesce()
void
coalesce_value()
SAP DBvoid
collate()
Use the 'collate' operator which exists on at least Postgres, MySQL, Oracle, and SQL Servervoid
collate_quoted()
HSQL requires quotes around certain collationsvoid
concat()
void
concat_pipeOperator()
Almost every databasevoid
concat_pipeOperator(String clobPattern)
void
corr()
void
cosh()
void
cot()
void
covarPopSamp()
void
crc32()
void
currentUtcdatetimetimestamp()
void
date()
void
datediff()
MySQL style, returns the number of days between two datesvoid
datepartDatename()
Transact SQL-stylevoid
dateTimeTimestamp()
void
dateTrunc()
void
daynameMonthname()
void
dayofweekmonthyear()
void
dayOfWeekMonthYear()
void
daysBetween()
void
degrees()
void
everyAny()
These are aggregate functions taking one argument!void
everyAny_boolAndOr()
These are aggregate functions taking one argument, for databases that can directly aggregate both boolean columns and predicates!void
everyAny_minMaxCase()
These are aggregate functions taking one argument, for Oracle and Sybase.void
everyAny_minMaxIif()
These are aggregate functions taking one argument, for SQL Server.void
everyAny_sumCase()
These are aggregate functions taking one argument, for databases that have to emulate the boolean aggregation functions using sum() and case.void
format_dateFormat()
MySQL-style (also Ingres)void
format_formatdatetime()
H2-style (uses Java's SimpleDateFormat directly so no need to translate format)void
format_toChar()
Usually Oracle-style (except for Informix which quite close to MySQL-style)void
format_toVarchar()
HANA's name for to_char() is still Oracle-stylevoid
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.void
hypotheticalOrderedSetAggregates()
void
hypotheticalOrderedSetAggregates_windowEmulation()
void
initcap()
void
insert()
void
insert_overlay()
Postgresvoid
instr()
void
inverseDistributionOrderedSetAggregates()
void
inverseDistributionOrderedSetAggregates_windowEmulation()
void
lastDay()
void
lastDay_eomonth()
void
leastGreatest()
void
leastGreatest_minMax()
void
leastGreatest_minMaxValue()
void
leftRight()
void
leftRight_substr()
void
leftRight_substrLength()
void
length_characterLength()
ANSI SQL-stylevoid
length_characterLength_pattern(String clobPattern)
void
listagg(String emptyWithinReplacement)
void
listagg_groupConcat()
void
listagg_list(String stringType)
void
listagg_stringAgg(String stringType)
void
listagg_stringAggWithinGroup(String stringType)
void
ln_log()
void
localtimeLocaltimestamp()
void
locate()
void
locate_charindex()
Transact SQL-stylevoid
locate_positionSubstring()
locate() in terms of ANSI position() and substring()void
log()
void
log10()
void
log10_log()
For Oracle and HANAvoid
log2()
void
lowerUpper()
void
makedateMaketime()
MySQL/CUBRIDvoid
makeDateTimeTimestamp()
Postgresvoid
math()
void
md5()
void
median()
void
median_percentileCont(boolean over)
void
median_percentileCont_castDouble()
CockroachDB lacks implicit casting: https://github.com/cockroachdb/cockroach/issues/89965void
mod_operator()
void
monthsBetween()
void
moreHyperbolic()
void
nowCurdateCurtime()
void
nullif()
void
octetLength()
void
octetLength_pattern(String pattern)
void
octetLength_pattern(String pattern, String clobPattern)
void
overlay()
ANSI SQL form, supported by Postgres, HSQLvoid
overlayCharacterLength_overlay()
For DB2 which has a broken implementation of overlay()void
pad()
void
pad_fill()
SAP DBvoid
pad_repeat()
void
pad_replicate()
Transact-SQLvoid
pad_space()
In MySQL the third argument is requiredvoid
pi()
void
position()
ANSI-stylevoid
power_expLn()
void
radians()
void
rand()
Returns double between 0.0 and 1.0.void
regrLinearRegressionAggregates()
void
repeat()
void
repeat_replicate()
void
replace()
void
replace_strReplace()
Sybasevoid
reverse()
void
round_floor()
void
rownum()
H2/HSQL-stylevoid
rownumInstOrderbyGroupbyNum()
CUBRIDvoid
rownumRowid()
Oracle-stylevoid
secondsBetween()
void
sha()
void
sha1()
void
sha2()
void
sinh()
void
soundex()
void
space()
void
square()
void
stddev()
Warning: the semantics of this function are inconsistent between DBs.void
stddevPopSamp()
void
stddevPopSamp_stdevp()
SQL Server-stylevoid
stdevVarianceSamp()
DB2void
substr()
void
substring()
Not the same as ANSI-style substring!void
substring_substr()
Oracle, and many othersvoid
substring_substringLen()
Transact SQL-style (3 required args)void
substringFromFor()
ANSI-style substringvoid
sysdate()
void
sysdateExplicitMicros()
MySQL 5.7 precision defaults to seconds, but microseconds is bettervoid
sysdateParens()
MySQL requires the parens in sysdate()void
systimestamp()
void
tanh()
void
time()
void
timestamp()
void
toCharNumberDateTimestamp()
void
translate()
void
trigonometry()
void
trim1()
void
trim2()
void
trunc()
void
truncate()
void
truncate_round()
SQL Servervoid
utcDateTimeTimestamp()
void
variance()
Warning: the semantics of this function are inconsistent between DBs.void
varPopSamp()
void
varPopSamp_varp()
SQL Server-stylevoid
week_weekofyear()
void
weekQuarter()
void
windowFunctions()
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.void
yearsMonthsDaysHoursMinutesSecondsBetween()
-
-
-
Constructor Detail
-
CommonFunctionFactory
public CommonFunctionFactory(QueryEngine queryEngine)
-
-
Method Detail
-
cosh
public void cosh()
-
cot
public void cot()
-
degrees
public void degrees()
-
log
public void log()
-
ln_log
public void ln_log()
-
log10
public void log10()
-
log10_log
public void log10_log()
For Oracle and HANA
-
log2
public void log2()
-
radians
public void radians()
-
sinh
public void sinh()
-
tanh
public void tanh()
-
moreHyperbolic
public void moreHyperbolic()
-
trunc
public void trunc()
-
truncate
public void truncate()
-
truncate_round
public void truncate_round()
SQL Server
-
rand
public void rand()
Returns double between 0.0 and 1.0. First call may specify a seed value.
-
median
public void median()
-
median_percentileCont
public void median_percentileCont(boolean over)
-
median_percentileCont_castDouble
public void median_percentileCont_castDouble()
CockroachDB lacks implicit casting: https://github.com/cockroachdb/cockroach/issues/89965
-
stddev
public void stddev()
Warning: the semantics of this function are inconsistent between DBs. - On Postgres it means stdev_samp() - On Oracle, DB2, MySQL it means stdev_pop()
-
variance
public void variance()
Warning: the semantics of this function are inconsistent between DBs. - On Postgres it means var_samp() - On Oracle, DB2, MySQL it means var_pop()
-
stddevPopSamp
public void stddevPopSamp()
-
varPopSamp
public void varPopSamp()
-
covarPopSamp
public void covarPopSamp()
-
corr
public void corr()
-
regrLinearRegressionAggregates
public void regrLinearRegressionAggregates()
-
stdevVarianceSamp
public void stdevVarianceSamp()
DB2
-
stddevPopSamp_stdevp
public void stddevPopSamp_stdevp()
SQL Server-style
-
varPopSamp_varp
public void varPopSamp_varp()
SQL Server-style
-
pi
public void pi()
-
soundex
public void soundex()
-
trim2
public void trim2()
-
trim1
public void trim1()
-
pad
public void pad()
-
pad_space
public void pad_space()
In MySQL the third argument is required
-
pad_replicate
public void pad_replicate()
Transact-SQL
-
pad_repeat
public void pad_repeat()
-
pad_fill
public void pad_fill()
SAP DB
-
reverse
public void reverse()
-
space
public void space()
-
repeat
public void repeat()
-
leftRight
public void leftRight()
-
leftRight_substr
public void leftRight_substr()
-
leftRight_substrLength
public void leftRight_substrLength()
-
repeat_replicate
public void repeat_replicate()
-
md5
public void md5()
-
initcap
public void initcap()
-
instr
public void instr()
-
substr
public void substr()
-
translate
public void translate()
-
bitand
public void bitand()
-
bitor
public void bitor()
-
bitxor
public void bitxor()
-
bitnot
public void bitnot()
-
bitandorxornot_bitAndOrXorNot
public void bitandorxornot_bitAndOrXorNot()
Binary bitwise operators, not aggregate functions!
-
bitandorxornot_binAndOrXorNot
public void bitandorxornot_binAndOrXorNot()
Bitwise operators, not aggregate functions!
-
bitandorxornot_operator
public void bitandorxornot_operator()
Binary bitwise operators, not aggregate functions!
-
bitAndOr
public void bitAndOr()
These are aggregate functions taking one argument!
-
everyAny
public void everyAny()
These are aggregate functions taking one argument!
-
everyAny_boolAndOr
public void everyAny_boolAndOr()
These are aggregate functions taking one argument, for databases that can directly aggregate both boolean columns and predicates!
-
everyAny_sumCase
public void everyAny_sumCase()
These are aggregate functions taking one argument, for databases that have to emulate the boolean aggregation functions using sum() and case.
-
everyAny_minMaxIif
public void everyAny_minMaxIif()
These are aggregate functions taking one argument, for SQL Server.
-
everyAny_minMaxCase
public void everyAny_minMaxCase()
These are aggregate functions taking one argument, for Oracle and Sybase.
-
yearMonthDay
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.
-
hourMinuteSecond
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.
-
dayofweekmonthyear
public void dayofweekmonthyear()
-
dayOfWeekMonthYear
public void dayOfWeekMonthYear()
-
daynameMonthname
public void daynameMonthname()
-
weekQuarter
public void weekQuarter()
-
lastDay
public void lastDay()
-
lastDay_eomonth
public void lastDay_eomonth()
-
ceiling_ceil
public void ceiling_ceil()
-
toCharNumberDateTimestamp
public void toCharNumberDateTimestamp()
-
dateTimeTimestamp
public void dateTimeTimestamp()
-
timestamp
public void timestamp()
-
time
public void time()
-
date
public void date()
-
utcDateTimeTimestamp
public void utcDateTimeTimestamp()
-
currentUtcdatetimetimestamp
public void currentUtcdatetimetimestamp()
-
week_weekofyear
public void week_weekofyear()
-
concat_pipeOperator
public void concat_pipeOperator()
Almost every database
-
concat_pipeOperator
public void concat_pipeOperator(String clobPattern)
-
rownumRowid
public void rownumRowid()
Oracle-style
-
rownum
public void rownum()
H2/HSQL-style
-
rownumInstOrderbyGroupbyNum
public void rownumInstOrderbyGroupbyNum()
CUBRID
-
makedateMaketime
public void makedateMaketime()
MySQL/CUBRID
-
makeDateTimeTimestamp
public void makeDateTimeTimestamp()
Postgres
-
sysdate
public void sysdate()
-
sysdateParens
public void sysdateParens()
MySQL requires the parens in sysdate()
-
sysdateExplicitMicros
public void sysdateExplicitMicros()
MySQL 5.7 precision defaults to seconds, but microseconds is better
-
systimestamp
public void systimestamp()
-
localtimeLocaltimestamp
public void localtimeLocaltimestamp()
-
trigonometry
public void trigonometry()
-
atan2_atn2
public void atan2_atn2()
Transact-SQL atan2 is misspelled
-
coalesce
public void coalesce()
-
coalesce_value
public void coalesce_value()
SAP DB
-
nullif
public void nullif()
-
length_characterLength
public void length_characterLength()
ANSI SQL-style
-
length_characterLength_pattern
public void length_characterLength_pattern(String clobPattern)
-
characterLength_len
public void characterLength_len()
Transact SQL-style
-
characterLength_length
public void characterLength_length(SqlAstNodeRenderingMode argumentRenderingMode)
Oracle-style
-
characterLength_length
public void characterLength_length(String clobPattern)
-
octetLength
public void octetLength()
-
octetLength_pattern
public void octetLength_pattern(String pattern)
-
bitLength
public void bitLength()
-
bitLength_pattern
public void bitLength_pattern(String pattern)
-
position
public void position()
ANSI-style
-
locate
public void locate()
-
locate_charindex
public void locate_charindex()
Transact SQL-style
-
locate_positionSubstring
public void locate_positionSubstring()
locate() in terms of ANSI position() and substring()
-
substringFromFor
public void substringFromFor()
ANSI-style substring
-
substring
public void substring()
Not the same as ANSI-style substring!
-
substring_substringLen
public void substring_substringLen()
Transact SQL-style (3 required args)
-
substring_substr
public void substring_substr()
Oracle, and many others
-
insert
public void insert()
-
insert_overlay
public void insert_overlay()
Postgres
-
overlay
public void overlay()
ANSI SQL form, supported by Postgres, HSQL
-
overlayCharacterLength_overlay
public void overlayCharacterLength_overlay()
For DB2 which has a broken implementation of overlay()
-
replace
public void replace()
-
replace_strReplace
public void replace_strReplace()
Sybase
-
concat
public void concat()
-
lowerUpper
public void lowerUpper()
-
ascii
public void ascii()
-
char_chr
public void char_chr()
-
chr_char
public void chr_char()
-
datepartDatename
public void datepartDatename()
Transact SQL-style
-
nowCurdateCurtime
public void nowCurdateCurtime()
-
leastGreatest
public void leastGreatest()
-
leastGreatest_minMax
public void leastGreatest_minMax()
-
leastGreatest_minMaxValue
public void leastGreatest_minMaxValue()
-
aggregates
public void aggregates(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)
-
avg_castingNonDoubleArguments
public void avg_castingNonDoubleArguments(Dialect dialect, SqlAstNodeRenderingMode inferenceArgumentRenderingMode)
-
listagg
public void listagg(String emptyWithinReplacement)
-
listagg_groupConcat
public void listagg_groupConcat()
-
listagg_list
public void listagg_list(String stringType)
-
listagg_stringAgg
public void listagg_stringAgg(String stringType)
-
listagg_stringAggWithinGroup
public void listagg_stringAggWithinGroup(String stringType)
-
inverseDistributionOrderedSetAggregates
public void inverseDistributionOrderedSetAggregates()
-
inverseDistributionOrderedSetAggregates_windowEmulation
public void inverseDistributionOrderedSetAggregates_windowEmulation()
-
hypotheticalOrderedSetAggregates
public void hypotheticalOrderedSetAggregates()
-
hypotheticalOrderedSetAggregates_windowEmulation
public void hypotheticalOrderedSetAggregates_windowEmulation()
-
windowFunctions
public void windowFunctions()
-
math
public void math()
-
mod_operator
public void mod_operator()
-
power_expLn
public void power_expLn()
-
round_floor
public void round_floor()
-
square
public void square()
-
cbrt
public void cbrt()
-
crc32
public void crc32()
-
sha1
public void sha1()
-
sha2
public void sha2()
-
sha
public void sha()
-
datediff
public void datediff()
MySQL style, returns the number of days between two dates
-
adddateSubdateAddtimeSubtime
public void adddateSubdateAddtimeSubtime()
MySQL style
-
addMonths
public void addMonths()
-
monthsBetween
public void monthsBetween()
-
daysBetween
public void daysBetween()
-
secondsBetween
public void secondsBetween()
-
yearsMonthsDaysHoursMinutesSecondsBetween
public void yearsMonthsDaysHoursMinutesSecondsBetween()
-
addYearsMonthsDaysHoursMinutesSeconds
public void addYearsMonthsDaysHoursMinutesSeconds()
-
format_formatdatetime
public void format_formatdatetime()
H2-style (uses Java's SimpleDateFormat directly so no need to translate format)
-
format_toChar
public void format_toChar()
Usually Oracle-style (except for Informix which quite close to MySQL-style)
-
format_dateFormat
public void format_dateFormat()
MySQL-style (also Ingres)
-
format_toVarchar
public void format_toVarchar()
HANA's name for to_char() is still Oracle-style
-
collate
public void collate()
Use the 'collate' operator which exists on at least Postgres, MySQL, Oracle, and SQL Server
-
collate_quoted
public void collate_quoted()
HSQL requires quotes around certain collations
-
dateTrunc
public void dateTrunc()
-
-