Class CommonFunctionFactory


  • public class CommonFunctionFactory
    extends Object
    Enumeratoes common function template definitions. Centralized for easier use from dialects.
    • Constructor Detail

    • Method Detail

      • cot

        public void cot()
      • log

        public void log()
        For databases where the first parameter is the base
      • log_ln

        public void log_ln()
      • log_log

        public void log_log()
        SQL Server defines parameters in reverse order
      • log_loglog

        public void log_loglog()
        For Sybase
      • ln_log

        public void ln_log()
        For SQL Server and Sybase
      • log10

        public void log10()
      • log10_log

        public void log10_log()
        For Oracle and HANA
      • log2

        public void log2()
      • radians

        public void radians()
      • radians_acos

        public void radians_acos()
        For Oracle, HANA
      • degrees

        public void degrees()
      • degrees_acos

        public void degrees_acos()
        For Oracle, HANA
      • sinh

        public void sinh()
      • sinh_exp

        public void sinh_exp()
      • cosh

        public void cosh()
      • cosh_exp

        public void cosh_exp()
      • tanh

        public void tanh()
      • tanh_exp

        public void tanh_exp()
      • moreHyperbolic

        public void moreHyperbolic()
      • trunc

        public void trunc()
      • trunc_dateTrunc

        public void trunc_dateTrunc()
      • trunc_dateTrunc_trunc

        public void trunc_dateTrunc_trunc()
      • trunc_truncate

        public void trunc_truncate()
        MySQL
      • trunc_round_datetrunc

        public void trunc_round_datetrunc()
        SQL Server >= 16
      • trunc_floor

        public void trunc_floor()
        Derby (only works if the second arg is constant, as it almost always is)
      • trunc_roundMode

        public void trunc_roundMode()
        SAP HANA
      • 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()
      • varianceSamp

        public void varianceSamp()
        DB2
      • varSamp_sumCount

        public void varSamp_sumCount()
        DB2 before 11
      • stddevSamp_sumCount

        public void stddevSamp_sumCount()
        DB2 before 11
      • stddevPopSamp_stdevp

        public void stddevPopSamp_stdevp()
        SQL Server-style
      • varPopSamp_varp

        public void varPopSamp_varp()
        SQL Server-style
      • pi

        public void pi()
      • pi_acos

        public void pi_acos()
      • 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()
      • repeat_rpad

        public void repeat_rpad()
      • leftRight

        public void leftRight()
      • leftRight_substr

        public void leftRight_substr()
      • leftRight_substrLength

        public void leftRight_substrLength()
        Emulate left via substr and right via substr and length. This function is for Apache Derby and uses SqlAstNodeRenderingMode.NO_PLAIN_PARAMETER for the right function emulation, because length in Apache Derby can't handle plain parameters.
      • 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​(boolean supportsPredicateAsExpression)
        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)
      • octetLength_pattern

        public void octetLength_pattern​(String pattern,
                                        String clobPattern)
      • bitLength

        public void bitLength()
      • bitLength_pattern

        public void bitLength_pattern​(String pattern)
      • bitLength_pattern

        public void bitLength_pattern​(String pattern,
                                      String clobPattern)
      • 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
      • overlayLength_overlay

        public void overlayLength_overlay​(boolean withCodeUnits)
        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()
        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. For the same reason we don't consider chr()/char() as "standard".
      • 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()
      • 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

        public void round()
      • round_round

        public void round_round()
        SQL Server
      • round_floor

        public void round_floor()
        Derby (only works if the second arg is constant, as it almost always is)
      • round_roundFloor

        public void round_roundFloor()
        PostgreSQL (only works if the second arg is constant, as it almost always is)
      • 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)
      • 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()
        H2, DB2 and PostgreSQL native date_trunc() function
      • dateTrunc_datetrunc

        public void dateTrunc_datetrunc()
        SQLServer native datetrunc() function
      • array

        public void array()
        H2, HSQL array() constructor function
      • array_hsql

        public void array_hsql()
        H2, HSQL array() constructor function
      • array_postgresql

        public void array_postgresql()
        CockroachDB and PostgreSQL array() constructor function
      • array_spanner

        public void array_spanner()
        Google Spanner array() constructor function
      • array_oracle

        public void array_oracle()
        Oracle array() constructor function
      • arrayAggregate

        public void arrayAggregate()
        H2, HSQL, CockroachDB and PostgreSQL array_agg() function
      • arrayAggregate_jsonArrayagg

        public void arrayAggregate_jsonArrayagg()
        Oracle array_agg() function
      • arrayContains_h2

        public void arrayContains_h2​(int maximumArraySize)
        H2 array_contains() function
      • arrayContains_hsql

        public void arrayContains_hsql()
        HSQL array_contains() function
      • arrayContains_postgresql

        public void arrayContains_postgresql()
        CockroachDB and PostgreSQL array contains operator
      • arrayContains_oracle

        public void arrayContains_oracle()
        Oracle array_contains() function
      • arrayOverlaps_h2

        public void arrayOverlaps_h2​(int maximumArraySize)
        H2 array_overlaps() function
      • arrayOverlaps_hsql

        public void arrayOverlaps_hsql()
        HSQL array_overlaps() function
      • arrayOverlaps_postgresql

        public void arrayOverlaps_postgresql()
        CockroachDB and PostgreSQL array overlaps operator
      • arrayOverlaps_oracle

        public void arrayOverlaps_oracle()
        Oracle array_overlaps() function
      • arrayPosition_postgresql

        public void arrayPosition_postgresql()
        CockroachDB and PostgreSQL array_position() function
      • arrayPosition_h2

        public void arrayPosition_h2​(int maximumArraySize)
        H2 array_position() function
      • arrayPosition_hsql

        public void arrayPosition_hsql()
        HSQL array_position() function
      • arrayPosition_oracle

        public void arrayPosition_oracle()
        Oracle array_position() function
      • arrayPositions_postgresql

        public void arrayPositions_postgresql()
        CockroachDB and PostgreSQL array_positions() function
      • arrayPositions_h2

        public void arrayPositions_h2​(int maximumArraySize)
        H2 array_positions() function
      • arrayPositions_hsql

        public void arrayPositions_hsql()
        HSQL array_positions() function
      • arrayPositions_oracle

        public void arrayPositions_oracle()
        Oracle array_positions() function
      • arrayLength_cardinality

        public void arrayLength_cardinality()
        H2, HSQLDB, CockroachDB and PostgreSQL array_length() function
      • arrayLength_oracle

        public void arrayLength_oracle()
        Oracle array_length() function
      • arrayConcat_operator

        public void arrayConcat_operator()
        H2 and HSQLDB array_concat() function
      • arrayConcat_postgresql

        public void arrayConcat_postgresql()
        CockroachDB and PostgreSQL array_concat() function
      • arrayConcat_oracle

        public void arrayConcat_oracle()
        Oracle array_concat() function
      • arrayPrepend_operator

        public void arrayPrepend_operator()
        H2 and HSQLDB array_prepend() function
      • arrayPrepend_postgresql

        public void arrayPrepend_postgresql()
        CockroachDB and PostgreSQL array_prepend() function
      • arrayPrepend_oracle

        public void arrayPrepend_oracle()
        Oracle array_prepend() function
      • arrayAppend_operator

        public void arrayAppend_operator()
        H2 and HSQLDB array_append() function
      • arrayAppend_postgresql

        public void arrayAppend_postgresql()
        CockroachDB and PostgreSQL array_append() function
      • arrayAppend_oracle

        public void arrayAppend_oracle()
        Oracle array_append() function
      • arrayGet_h2

        public void arrayGet_h2()
        H2 array_get() function via bracket syntax
      • arrayGet_bracket

        public void arrayGet_bracket()
        CockroachDB and PostgreSQL array_get() function via bracket syntax
      • arrayGet_unnest

        public void arrayGet_unnest()
        HSQL array_get() function
      • arrayGet_oracle

        public void arrayGet_oracle()
        Oracle array_get() function
      • arraySet_h2

        public void arraySet_h2​(int maximumArraySize)
        H2 array_set() function
      • arraySet_hsql

        public void arraySet_hsql()
        HSQL array_set() function
      • arraySet_unnest

        public void arraySet_unnest()
        CockroachDB and PostgreSQL array_set() function
      • arraySet_oracle

        public void arraySet_oracle()
        Oracle array_set() function
      • arrayRemove

        public void arrayRemove()
        CockroachDB and PostgreSQL array_remove() function
      • arrayRemove_h2

        public void arrayRemove_h2​(int maximumArraySize)
        H2 array_remove() function
      • arrayRemove_hsql

        public void arrayRemove_hsql()
        HSQL array_remove() function
      • arrayRemove_oracle

        public void arrayRemove_oracle()
        Oracle array_remove() function
      • arrayRemoveIndex_h2

        public void arrayRemoveIndex_h2​(int maximumArraySize)
        H2 array_remove_index() function
      • arrayRemoveIndex_unnest

        public void arrayRemoveIndex_unnest​(boolean castEmptyArrayLiteral)
        HSQL, CockroachDB and PostgreSQL array_remove_index() function
      • arrayRemoveIndex_oracle

        public void arrayRemoveIndex_oracle()
        Oracle array_remove_index() function
      • arraySlice

        public void arraySlice()
        H2 array_slice() function
      • arraySlice_unnest

        public void arraySlice_unnest()
        HSQL array_slice() function
      • arraySlice_operator

        public void arraySlice_operator()
        CockroachDB and PostgreSQL array_slice() function
      • arraySlice_oracle

        public void arraySlice_oracle()
        Oracle array_slice() function
      • arrayReplace_h2

        public void arrayReplace_h2​(int maximumArraySize)
        H2 array_replace() function
      • arrayReplace_unnest

        public void arrayReplace_unnest()
        HSQL array_replace() function
      • arrayReplace

        public void arrayReplace()
        CockroachDB and PostgreSQL array_replace() function
      • arrayReplace_oracle

        public void arrayReplace_oracle()
        Oracle array_replace() function
      • arrayTrim_trim_array

        public void arrayTrim_trim_array()
        H2, HSQLDB, CockroachDB and PostgreSQL array_trim() function
      • arrayTrim_unnest

        public void arrayTrim_unnest()
        PostgreSQL array_trim() emulation for versions before 14
      • arrayTrim_oracle

        public void arrayTrim_oracle()
        Oracle array_trim() function
      • arrayFill_h2

        public void arrayFill_h2()
        H2 array_fill() function
      • arrayFill_hsql

        public void arrayFill_hsql()
        HSQLDB array_fill() function
      • arrayFill_postgresql

        public void arrayFill_postgresql()
        PostgreSQL array_fill() function
      • arrayFill_cockroachdb

        public void arrayFill_cockroachdb()
        Cockroach array_fill() function
      • arrayFill_oracle

        public void arrayFill_oracle()
        Oracle array_fill() function
      • arrayToString_h2

        public void arrayToString_h2​(int maximumArraySize)
        H2 array_to_string() function
      • arrayToString_hsql

        public void arrayToString_hsql()
        HSQL array_to_string() function
      • arrayToString_postgresql

        public void arrayToString_postgresql()
        CockroachDB and PostgreSQL array_to_string() function
      • arrayToString_oracle

        public void arrayToString_oracle()
        Oracle array_to_string() function