Search in sources :

Example 1 with MySQLMillisecondFunction

use of com.blazebit.persistence.impl.function.datetime.millisecond.MySQLMillisecondFunction in project blaze-persistence by Blazebit.

the class CriteriaBuilderConfigurationImpl method loadFunctions.

// NOTE: When adding a function here, you might want to also add it in AbstractCoreTest so it is recognized
@SuppressWarnings("checkstyle:methodlength")
private void loadFunctions() {
    JpqlFunctionGroup jpqlFunctionGroup;
    // limit
    jpqlFunctionGroup = new JpqlFunctionGroup(LimitFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new LimitFunction(dbmsDialects.get(null)));
    jpqlFunctionGroup.add("mysql", new LimitFunction(dbmsDialects.get("mysql")));
    jpqlFunctionGroup.add("mysql8", new LimitFunction(dbmsDialects.get("mysql8")));
    jpqlFunctionGroup.add("oracle", new LimitFunction(dbmsDialects.get("oracle")));
    jpqlFunctionGroup.add("db2", new LimitFunction(dbmsDialects.get("db2")));
    // Does not support limit
    jpqlFunctionGroup.add("sybase", null);
    jpqlFunctionGroup.add("microsoft", new LimitFunction(dbmsDialects.get("microsoft")));
    registerFunction(jpqlFunctionGroup);
    // page_position
    jpqlFunctionGroup = new JpqlFunctionGroup(PagePositionFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new PagePositionFunction());
    jpqlFunctionGroup.add("mysql", new MySQLPagePositionFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLPagePositionFunction());
    jpqlFunctionGroup.add("oracle", new OraclePagePositionFunction());
    jpqlFunctionGroup.add("sybase", new TransactSQLPagePositionFunction());
    jpqlFunctionGroup.add("microsoft", new TransactSQLPagePositionFunction());
    registerFunction(jpqlFunctionGroup);
    // entity_function
    registerFunction(EntityFunction.FUNCTION_NAME, new EntityFunction());
    // nullfn
    registerFunction(NullfnFunction.FUNCTION_NAME, new NullfnFunction());
    // collection_dml_support
    registerFunction(CollectionDmlSupportFunction.FUNCTION_NAME, new CollectionDmlSupportFunction());
    // param
    registerFunction(ParamFunction.FUNCTION_NAME, new ParamFunction());
    // exist
    registerFunction(ExistFunction.FUNCTION_NAME, new ExistFunction());
    // replace
    registerFunction(ReplaceFunction.FUNCTION_NAME, new ReplaceFunction());
    // chr
    jpqlFunctionGroup = new JpqlFunctionGroup(ChrFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new ChrFunction());
    jpqlFunctionGroup.add("mysql", new CharChrFunction());
    jpqlFunctionGroup.add("mysql8", new CharChrFunction());
    jpqlFunctionGroup.add("microsoft", new CharChrFunction());
    jpqlFunctionGroup.add("sybase", new CharChrFunction());
    registerFunction(jpqlFunctionGroup);
    // base64
    jpqlFunctionGroup = new JpqlFunctionGroup(Base64Function.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new Base64Function());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLBase64Function());
    registerFunction(jpqlFunctionGroup);
    for (SetOperationType setType : SetOperationType.values()) {
        // Use a prefix because hibernate uses UNION as keyword
        jpqlFunctionGroup = new JpqlFunctionGroup("set_" + setType.name().toLowerCase(), false);
        for (Map.Entry<String, DbmsDialect> dbmsDialectEntry : dbmsDialects.entrySet()) {
            jpqlFunctionGroup.add(dbmsDialectEntry.getKey(), new SetFunction(setType, dbmsDialectEntry.getValue()));
        }
        registerFunction(jpqlFunctionGroup);
    }
    // temporal literals
    registerFunction(LiteralTimeFunction.FUNCTION_NAME, new LiteralTimeFunction());
    registerFunction(LiteralDateFunction.FUNCTION_NAME, new LiteralDateFunction());
    registerFunction(LiteralTimestampFunction.FUNCTION_NAME, new LiteralTimestampFunction());
    registerFunction(LiteralDateTimestampFunction.FUNCTION_NAME, new LiteralDateTimestampFunction());
    registerFunction(LiteralCalendarFunction.FUNCTION_NAME, new LiteralCalendarFunction());
    // treat
    registerNamedType("Boolean", Boolean.class);
    registerNamedType("Byte", Byte.class);
    registerNamedType("Short", Short.class);
    registerNamedType("Integer", Integer.class);
    registerNamedType("Long", Long.class);
    registerNamedType("Float", Float.class);
    registerNamedType("Double", Double.class);
    registerNamedType("Character", Character.class);
    registerNamedType("String", String.class);
    registerNamedType("BigInteger", BigInteger.class);
    registerNamedType("BigDecimal", BigDecimal.class);
    registerNamedType("Time", Time.class);
    registerNamedType("Date", java.sql.Date.class);
    registerNamedType("Timestamp", Timestamp.class);
    registerNamedType("TimeZone", TimeZone.class);
    registerNamedType("Calendar", Calendar.class);
    registerNamedType("GregorianCalendar", GregorianCalendar.class);
    registerNamedType("Class", java.lang.Class.class);
    registerNamedType("Currency", java.util.Currency.class);
    registerNamedType("Locale", java.util.Locale.class);
    registerNamedType("UUID", java.util.UUID.class);
    registerNamedType("URL", java.net.URL.class);
    // Java 8 time types
    try {
        registerNamedType("LocalDate", Class.forName("java.time.LocalDate"));
        registerNamedType("LocalTime", Class.forName("java.time.LocalTime"));
        registerNamedType("LocalDateTime", Class.forName("java.time.LocalDateTime"));
        registerNamedType("OffsetTime", Class.forName("java.time.OffsetTime"));
        registerNamedType("OffsetDateTime", Class.forName("java.time.OffsetDateTime"));
        registerNamedType("ZonedDateTime", Class.forName("java.time.ZonedDateTime"));
        registerNamedType("Duration", Class.forName("java.time.Duration"));
        registerNamedType("Instant", Class.forName("java.time.Instant"));
        registerNamedType("MonthDay", Class.forName("java.time.MonthDay"));
        registerNamedType("Year", Class.forName("java.time.Year"));
        registerNamedType("YearMonth", Class.forName("java.time.YearMonth"));
        registerNamedType("Period", Class.forName("java.time.Period"));
        registerNamedType("ZoneId", Class.forName("java.time.ZoneId"));
        registerNamedType("ZoneOffset", Class.forName("java.time.ZoneOffset"));
        registerFunction(LiteralLocalDateFunction.FUNCTION_NAME, new LiteralLocalDateFunction());
        registerFunction(LiteralLocalTimeFunction.FUNCTION_NAME, new LiteralLocalTimeFunction());
        registerFunction(LiteralLocalDateTimeFunction.FUNCTION_NAME, new LiteralLocalDateTimeFunction());
        registerFunction(LiteralInstantFunction.FUNCTION_NAME, new LiteralInstantFunction());
        registerFunction(LiteralZonedDateTimeFunction.FUNCTION_NAME, new LiteralZonedDateTimeFunction());
        registerFunction(LiteralOffsetTimeFunction.FUNCTION_NAME, new LiteralOffsetTimeFunction());
        registerFunction(LiteralOffsetDateTimeFunction.FUNCTION_NAME, new LiteralOffsetDateTimeFunction());
    } catch (ClassNotFoundException ex) {
    // If they aren't found, we ignore them
    }
    // cast
    registerFunction(new JpqlFunctionGroup("cast_boolean"));
    registerFunction(new JpqlFunctionGroup("cast_byte"));
    registerFunction(new JpqlFunctionGroup("cast_short"));
    registerFunction(new JpqlFunctionGroup("cast_integer"));
    registerFunction(new JpqlFunctionGroup("cast_long"));
    registerFunction(new JpqlFunctionGroup("cast_float"));
    registerFunction(new JpqlFunctionGroup("cast_double"));
    registerFunction(new JpqlFunctionGroup("cast_character"));
    registerFunction(new JpqlFunctionGroup("cast_string"));
    registerFunction(new JpqlFunctionGroup("cast_biginteger"));
    registerFunction(new JpqlFunctionGroup("cast_bigdecimal"));
    registerFunction(new JpqlFunctionGroup("cast_time"));
    registerFunction(new JpqlFunctionGroup("cast_date"));
    registerFunction(new JpqlFunctionGroup("cast_timestamp"));
    registerFunction(new JpqlFunctionGroup("cast_calendar"));
    for (Map.Entry<String, DbmsDialect> dbmsDialectEntry : dbmsDialects.entrySet()) {
        for (Class<?> type : BasicCastTypes.TYPES) {
            CastFunction castFunction;
            if ("db2".equals(dbmsDialectEntry.getKey())) {
                castFunction = new DB2CastFunction(type, dbmsDialectEntry.getValue());
            } else {
                castFunction = new CastFunction(type, dbmsDialectEntry.getValue());
            }
            functions.get("cast_" + type.getSimpleName().toLowerCase()).add(dbmsDialectEntry.getKey(), castFunction);
        }
    }
    // concat
    jpqlFunctionGroup = new JpqlFunctionGroup(ConcatFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, PipeBasedConcatFunction.INSTANCE);
    jpqlFunctionGroup.add("mysql", ConcatFunction.INSTANCE);
    jpqlFunctionGroup.add("mysql8", ConcatFunction.INSTANCE);
    jpqlFunctionGroup.add("microsoft", PlusBasedConcatFunction.INSTANCE);
    jpqlFunctionGroup.add("sybase", PlusBasedConcatFunction.INSTANCE);
    registerFunction(jpqlFunctionGroup);
    // group_concat
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractGroupConcatFunction.FUNCTION_NAME, true);
    jpqlFunctionGroup.add("db2", new DB2GroupConcatFunction());
    jpqlFunctionGroup.add("oracle", new OracleListaggGroupConcatFunction());
    jpqlFunctionGroup.add("h2", new H2GroupConcatFunction());
    jpqlFunctionGroup.add("mysql", new MySQLGroupConcatFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLGroupConcatFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLGroupConcatFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLGroupConcatFunction());
    registerFunction(jpqlFunctionGroup);
    // listagg
    jpqlFunctionGroup = new JpqlFunctionGroup("listagg", JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    jpqlFunctionGroup.add("db2", new DB2GroupConcatWindowFunction(dbmsDialects.get("db2")));
    jpqlFunctionGroup.add("oracle", new OracleListaggGroupConcatWindowFunction(dbmsDialects.get("oracle")));
    jpqlFunctionGroup.add("h2", new H2GroupConcatWindowFunction(dbmsDialects.get("h2")));
    jpqlFunctionGroup.add("mysql", new MySQLGroupConcatWindowFunction(dbmsDialects.get("mysql")));
    jpqlFunctionGroup.add("mysql8", new MySQLGroupConcatWindowFunction(dbmsDialects.get("mysql8")));
    jpqlFunctionGroup.add("microsoft", new MSSQLGroupConcatFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLGroupConcatWindowFunction(dbmsDialects.get("postgresql")));
    registerFunction(jpqlFunctionGroup);
    // window_group_concat
    jpqlFunctionGroup = new JpqlFunctionGroup("window_group_concat", JpqlFunctionKind.WINDOW);
    jpqlFunctionGroup.add("db2", new DB2GroupConcatWindowFunction(dbmsDialects.get("db2")));
    jpqlFunctionGroup.add("oracle", new OracleListaggGroupConcatWindowFunction(dbmsDialects.get("oracle")));
    jpqlFunctionGroup.add("h2", new H2GroupConcatWindowFunction(dbmsDialects.get("h2")));
    jpqlFunctionGroup.add("mysql", new MySQLGroupConcatWindowFunction(dbmsDialects.get("mysql")));
    jpqlFunctionGroup.add("mysql8", new MySQLGroupConcatWindowFunction(dbmsDialects.get("mysql8")));
    jpqlFunctionGroup.add("postgresql", new PostgreSQLGroupConcatWindowFunction(dbmsDialects.get("postgresql")));
    registerFunction(jpqlFunctionGroup);
    // datetime
    jpqlFunctionGroup = new JpqlFunctionGroup("year", false);
    jpqlFunctionGroup.add(null, new YearFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLYearFunction());
    jpqlFunctionGroup.add("access", new AccessYearFunction());
    jpqlFunctionGroup.add("db2", new DB2YearFunction());
    jpqlFunctionGroup.add("derby", new DerbyYearFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLYearFunction());
    jpqlFunctionGroup.add("sybase", new SybaseYearFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteYearFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("year_of_week", false);
    jpqlFunctionGroup.add(null, new YearOfWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLYearOfWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2YearOfWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLYearOfWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLYearOfWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLYearOfWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleYearOfWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("year_week", false);
    jpqlFunctionGroup.add(null, new YearWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLYearWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLYearWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2YearWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleYearWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLYearWeekFunction());
    jpqlFunctionGroup.add("h2", new H2YearWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLYearWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("month", false);
    jpqlFunctionGroup.add(null, new MonthFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMonthFunction());
    jpqlFunctionGroup.add("access", new AccessMonthFunction());
    jpqlFunctionGroup.add("db2", new DB2MonthFunction());
    jpqlFunctionGroup.add("derby", new DerbyMonthFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMonthFunction());
    jpqlFunctionGroup.add("sybase", new SybaseMonthFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteMonthFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("week", false);
    jpqlFunctionGroup.add(null, new IsoWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLIsoWeekFunction());
    jpqlFunctionGroup.add("access", new AccessIsoWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2IsoWeekFunction());
    jpqlFunctionGroup.add("h2", new H2IsoWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLIsoWeekFunction());
    jpqlFunctionGroup.add("sybase", new SybaseIsoWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteIsoWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLIsoWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLIsoWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleIsoWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteIsoWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("iso_week", false);
    jpqlFunctionGroup.add(null, new IsoWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLIsoWeekFunction());
    jpqlFunctionGroup.add("access", new AccessIsoWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2IsoWeekFunction());
    jpqlFunctionGroup.add("h2", new H2IsoWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLIsoWeekFunction());
    jpqlFunctionGroup.add("sybase", new SybaseIsoWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteIsoWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLIsoWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLIsoWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleIsoWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteIsoWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("week_in_year", false);
    jpqlFunctionGroup.add(null, new WeekInYearFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLWeekInYearFunction());
    jpqlFunctionGroup.add("db2", new DB2WeekInYearFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLWeekInYearFunction());
    jpqlFunctionGroup.add("mysql", new MySQLWeekInYearFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLWeekInYearFunction());
    jpqlFunctionGroup.add("oracle", new OracleWeekInYearFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("quarter", false);
    jpqlFunctionGroup.add(null, new QuarterFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLQuarterFunction());
    jpqlFunctionGroup.add("access", new AccessQuarterFunction());
    jpqlFunctionGroup.add("db2", new DB2QuarterFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLQuarterFunction());
    jpqlFunctionGroup.add("sybase", new SybaseQuarterFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteQuarterFunction());
    jpqlFunctionGroup.add("oracle", new OracleQuarterFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteQuarterFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("day", false);
    jpqlFunctionGroup.add(null, new DayFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLDayFunction());
    jpqlFunctionGroup.add("access", new AccessDayFunction());
    jpqlFunctionGroup.add("db2", new DB2DayFunction());
    jpqlFunctionGroup.add("derby", new DerbyDayFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLDayFunction());
    jpqlFunctionGroup.add("sybase", new SybaseDayFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteDayFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("dayofyear", false);
    jpqlFunctionGroup.add(null, new DayOfYearFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLDayOfYearFunction());
    jpqlFunctionGroup.add("access", new AccessDayOfYearFunction());
    jpqlFunctionGroup.add("db2", new DB2DayOfYearFunction());
    jpqlFunctionGroup.add("mysql", new MySQLDayOfYearFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLDayOfYearFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLDayOfYearFunction());
    jpqlFunctionGroup.add("sybase", new SybaseDayOfYearFunction());
    jpqlFunctionGroup.add("oracle", new OracleDayOfYearFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteDayOfYearFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("dayofweek", false);
    jpqlFunctionGroup.add(null, new DayOfWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLDayOfWeekFunction());
    jpqlFunctionGroup.add("access", new AccessDayOfWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2DayOfWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLDayOfWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLDayOfWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLDayOfWeekFunction());
    jpqlFunctionGroup.add("sybase", new SybaseDayOfWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleDayOfWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteDayOfWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("isodayofweek", false);
    jpqlFunctionGroup.add(null, new IsoDayOfWeekFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("access", new AccessIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("db2", new DB2IsoDayOfWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("sybase", new SybaseIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleIsoDayOfWeekFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteIsoDayOfWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("hour", false);
    jpqlFunctionGroup.add(null, new HourFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLHourFunction());
    jpqlFunctionGroup.add("access", new AccessHourFunction());
    jpqlFunctionGroup.add("db2", new DB2HourFunction());
    jpqlFunctionGroup.add("derby", new DerbyHourFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLHourFunction());
    jpqlFunctionGroup.add("sybase", new SybaseHourFunction());
    jpqlFunctionGroup.add("oracle", new OracleHourFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteHourFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("minute", false);
    jpqlFunctionGroup.add(null, new MinuteFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMinuteFunction());
    jpqlFunctionGroup.add("access", new AccessMinuteFunction());
    jpqlFunctionGroup.add("db2", new DB2MinuteFunction());
    jpqlFunctionGroup.add("derby", new DerbyMinuteFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMinuteFunction());
    jpqlFunctionGroup.add("sybase", new SybaseMinuteFunction());
    jpqlFunctionGroup.add("oracle", new OracleMinuteFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteMinuteFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("second", false);
    jpqlFunctionGroup.add(null, new SecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLSecondFunction());
    jpqlFunctionGroup.add("access", new AccessSecondFunction());
    jpqlFunctionGroup.add("db2", new DB2SecondFunction());
    jpqlFunctionGroup.add("derby", new DerbySecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLSecondFunction());
    jpqlFunctionGroup.add("sybase", new SybaseSecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleSecondFunction());
    jpqlFunctionGroup.add("sqlite", new SqliteSecondFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("millisecond", false);
    jpqlFunctionGroup.add(null, new MillisecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMillisecondFunction());
    jpqlFunctionGroup.add("db2", new DB2MillisecondFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMillisecondFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMillisecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMillisecondFunction());
    jpqlFunctionGroup.add("sybase", new SybaseMillisecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleMillisecondFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("microsecond", false);
    jpqlFunctionGroup.add(null, new MicrosecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMicrosecondFunction());
    jpqlFunctionGroup.add("db2", new DB2MicrosecondFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMicrosecondFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMicrosecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMicrosecondFunction());
    jpqlFunctionGroup.add("sybase", new SybaseMicrosecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleMicrosecondFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch", false);
    jpqlFunctionGroup.add(null, new DefaultEpochFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLEpochFunction());
    jpqlFunctionGroup.add("oracle", new OracleEpochFunction());
    jpqlFunctionGroup.add("db2", new DB2EpochFunction());
    jpqlFunctionGroup.add("mysql", new MySQLEpochFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLEpochFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch_seconds", false);
    jpqlFunctionGroup.add(null, new DefaultEpochFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLEpochFunction());
    jpqlFunctionGroup.add("oracle", new OracleEpochFunction());
    jpqlFunctionGroup.add("db2", new DB2EpochFunction());
    jpqlFunctionGroup.add("mysql", new MySQLEpochFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLEpochFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch_days", false);
    jpqlFunctionGroup.add(null, new DefaultEpochDayFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLEpochDayFunction());
    jpqlFunctionGroup.add("oracle", new OracleEpochDayFunction());
    jpqlFunctionGroup.add("db2", new DB2EpochDayFunction());
    jpqlFunctionGroup.add("mysql", new MySQLEpochDayFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLEpochDayFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch_milliseconds", false);
    jpqlFunctionGroup.add(null, new DefaultEpochMillisecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLEpochMillisecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLEpochMillisecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleEpochMillisecondFunction());
    jpqlFunctionGroup.add("db2", new DB2EpochMillisecondFunction());
    jpqlFunctionGroup.add("mysql", new MySQLEpochMillisecondFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLEpochMillisecondFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch_microseconds", false);
    jpqlFunctionGroup.add(null, new DefaultEpochMicrosecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLEpochMicrosecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLEpochMicrosecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleEpochMicrosecondFunction());
    jpqlFunctionGroup.add("db2", new DB2EpochMicrosecondFunction());
    jpqlFunctionGroup.add("mysql", new MySQLEpochMicrosecondFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLEpochMicrosecondFunction());
    registerFunction(jpqlFunctionGroup);
    // dateadd
    jpqlFunctionGroup = new JpqlFunctionGroup(DayAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new DayAddFunction());
    jpqlFunctionGroup.add("db2", new DB2DayAddFunction());
    jpqlFunctionGroup.add("h2", new H2DayAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLDayAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLDayAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLDayAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLDayAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleDayAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(HourAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new HourAddFunction());
    jpqlFunctionGroup.add("db2", new DB2HourAddFunction());
    jpqlFunctionGroup.add("h2", new H2HourAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLHourAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLHourAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLHourAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLHourAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleHourAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(MicrosecondsAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new MicrosecondsAddFunction());
    jpqlFunctionGroup.add("db2", new DB2MicrosecondsAddFunction());
    jpqlFunctionGroup.add("h2", new H2MicrosecondsAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMicrosecondsAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMicrosecondsAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMicrosecondsAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMicrosecondsAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleMicrosecondsAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(MillisecondsAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new MillisecondsAddFunction());
    jpqlFunctionGroup.add("db2", new DB2MillisecondsAddFunction());
    jpqlFunctionGroup.add("h2", new H2MillisecondsAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMillisecondsAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMillisecondsAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMillisecondsAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMillisecondsAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleMillisecondsAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(MinuteAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new MinuteAddFunction());
    jpqlFunctionGroup.add("db2", new DB2MinuteAddFunction());
    jpqlFunctionGroup.add("h2", new H2MinuteAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMinuteAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMinuteAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMinuteAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMinuteAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleMinuteAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(MonthAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new MonthAddFunction());
    jpqlFunctionGroup.add("db2", new DB2MonthAddFunction());
    jpqlFunctionGroup.add("h2", new H2MonthAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMonthAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMonthAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMonthAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMonthAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleMonthAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(QuarterAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new QuarterAddFunction());
    jpqlFunctionGroup.add("db2", new DB2QuarterAddFunction());
    jpqlFunctionGroup.add("h2", new H2QuarterAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLQuarterAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLQuarterAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLQuarterAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLQuarterAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleQuarterAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(SecondAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new SecondAddFunction());
    jpqlFunctionGroup.add("db2", new DB2SecondAddFunction());
    jpqlFunctionGroup.add("h2", new H2SecondAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLSecondAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLSecondAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLSecondAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLSecondAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleSecondAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(WeekAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new WeekAddFunction());
    jpqlFunctionGroup.add("db2", new DB2WeekAddFunction());
    jpqlFunctionGroup.add("h2", new H2WeekAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLWeekAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLWeekAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLWeekAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLWeekAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleWeekAddFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(YearAddFunction.NAME, false);
    jpqlFunctionGroup.add(null, new YearAddFunction());
    jpqlFunctionGroup.add("db2", new DB2YearAddFunction());
    jpqlFunctionGroup.add("h2", new H2YearAddFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLYearAddFunction());
    jpqlFunctionGroup.add("mysql", new MySQLYearAddFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLYearAddFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLYearAddFunction());
    jpqlFunctionGroup.add("oracle", new OracleYearAddFunction());
    registerFunction(jpqlFunctionGroup);
    // datediff
    jpqlFunctionGroup = new JpqlFunctionGroup("year_diff", false);
    jpqlFunctionGroup.add("access", new AccessYearDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2YearDiffFunction());
    jpqlFunctionGroup.add("h2", new DefaultYearDiffFunction());
    jpqlFunctionGroup.add("microsoft", new DefaultYearDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLYearDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLYearDiffFunction());
    jpqlFunctionGroup.add("sybase", new DefaultYearDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLYearDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleYearDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("month_diff", false);
    jpqlFunctionGroup.add("access", new AccessMonthDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2MonthDiffFunction());
    jpqlFunctionGroup.add("h2", new DefaultMonthDiffFunction());
    jpqlFunctionGroup.add("microsoft", new DefaultMonthDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMonthDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMonthDiffFunction());
    jpqlFunctionGroup.add("sybase", new DefaultMonthDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMonthDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleMonthDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("day_diff", false);
    jpqlFunctionGroup.add("access", new AccessDayDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2DayDiffFunction());
    jpqlFunctionGroup.add("h2", new DefaultDayDiffFunction());
    jpqlFunctionGroup.add("microsoft", new DefaultDayDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLDayDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLDayDiffFunction());
    jpqlFunctionGroup.add("sybase", new DefaultDayDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLDayDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleDayDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("hour_diff", false);
    jpqlFunctionGroup.add("access", new AccessHourDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2HourDiffFunction());
    jpqlFunctionGroup.add("h2", new DefaultHourDiffFunction());
    jpqlFunctionGroup.add("microsoft", new DefaultHourDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLHourDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLHourDiffFunction());
    jpqlFunctionGroup.add("sybase", new DefaultHourDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLHourDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleHourDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("minute_diff", false);
    jpqlFunctionGroup.add("access", new AccessMinuteDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2MinuteDiffFunction());
    jpqlFunctionGroup.add("h2", new DefaultMinuteDiffFunction());
    jpqlFunctionGroup.add("microsoft", new DefaultMinuteDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMinuteDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMinuteDiffFunction());
    jpqlFunctionGroup.add("sybase", new DefaultMinuteDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMinuteDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleMinuteDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("second_diff", false);
    jpqlFunctionGroup.add(null, new DefaultSecondDiffFunction());
    jpqlFunctionGroup.add("access", new AccessSecondDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2SecondDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLSecondDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLSecondDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLSecondDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLSecondDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleSecondDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("epoch_diff", false);
    jpqlFunctionGroup.add(null, new DefaultSecondDiffFunction());
    jpqlFunctionGroup.add("access", new AccessSecondDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2SecondDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLSecondDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLSecondDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLSecondDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLSecondDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleSecondDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("millisecond_diff", false);
    jpqlFunctionGroup.add(null, new DefaultMillisecondDiffFunction());
    jpqlFunctionGroup.add("access", new AccessMillisecondDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2MillisecondDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMillisecondDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMillisecondDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMillisecondDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMillisecondDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleMillisecondDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("microsecond_diff", false);
    jpqlFunctionGroup.add(null, new DefaultMicrosecondDiffFunction());
    jpqlFunctionGroup.add("access", new AccessMicrosecondDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2MicrosecondDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLMicrosecondDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLMicrosecondDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLMicrosecondDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLMicrosecondDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleMicrosecondDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("week_diff", false);
    jpqlFunctionGroup.add(null, new DefaultWeekDiffFunction());
    jpqlFunctionGroup.add("h2", new H2WeekDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2WeekDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLWeekDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLWeekDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLWeekDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleWeekDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLWeekDiffFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("quarter_diff", false);
    jpqlFunctionGroup.add(null, new DefaultQuarterDiffFunction());
    jpqlFunctionGroup.add("access", new AccessQuarterDiffFunction());
    jpqlFunctionGroup.add("h2", new H2QuarterDiffFunction());
    jpqlFunctionGroup.add("db2", new DB2QuarterDiffFunction());
    jpqlFunctionGroup.add("mysql", new MySQLQuarterDiffFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLQuarterDiffFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLQuarterDiffFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLQuarterDiffFunction());
    jpqlFunctionGroup.add("oracle", new OracleQuarterDiffFunction());
    registerFunction(jpqlFunctionGroup);
    // date trunc
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncDayFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncDayFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncDayFunction());
    jpqlFunctionGroup.add("h2", new H2TruncDayFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncDayFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncDayFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncDayFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncDayFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncDayFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncHourFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncHourFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncHourFunction());
    jpqlFunctionGroup.add("h2", new H2TruncHourFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncHourFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncHourFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncHourFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncHourFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncHourFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncMicrosecondsFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncMicrosecondsFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncMicrosecondsFunction());
    jpqlFunctionGroup.add("h2", new H2TruncMicrosecondsFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncMicrosecondsFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncMicrosecondsFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncMicrosecondsFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncMicrosecondsFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncMicrosecondsFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncMillisecondsFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncMillisecondsFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncMillisecondsFunction());
    jpqlFunctionGroup.add("h2", new H2TruncMillisecondsFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncMillisecondsFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncMillisecondsFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncMillisecondsFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncMillisecondsFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncMillisecondsFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncMinuteFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncMinuteFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncMinuteFunction());
    jpqlFunctionGroup.add("h2", new H2TruncMinuteFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncMinuteFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncMinuteFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncMinuteFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncMinuteFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncMinuteFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncMonthFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncMonthFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncMonthFunction());
    jpqlFunctionGroup.add("h2", new H2TruncMonthFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncMonthFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncMonthFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncMonthFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncMonthFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncMonthFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncQuarterFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncQuarterFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncQuarterFunction());
    jpqlFunctionGroup.add("h2", new H2TruncQuarterFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncQuarterFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncQuarterFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncQuarterFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncQuarterFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncQuarterFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncSecondFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncSecondFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncSecondFunction());
    jpqlFunctionGroup.add("h2", new H2TruncSecondFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncSecondFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncSecondFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncSecondFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncSecondFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncSecondFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncWeekFunction.NAME, false);
    jpqlFunctionGroup.add(null, new TruncWeekFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncWeekFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncWeekFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncWeekFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncWeekFunction());
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup(TruncYearFunction.NAME, false);
    jpqlFunctionGroup.add(null, new PostgreSQLTruncYearFunction());
    jpqlFunctionGroup.add("db2", new DB2TruncYearFunction());
    jpqlFunctionGroup.add("h2", new H2TruncYearFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLTruncYearFunction());
    jpqlFunctionGroup.add("mysql", new MySQLTruncYearFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLTruncYearFunction());
    jpqlFunctionGroup.add("oracle", new OracleTruncYearFunction());
    jpqlFunctionGroup.add("postgresql", new PostgreSQLTruncYearFunction());
    registerFunction(jpqlFunctionGroup);
    // count
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractCountFunction.FUNCTION_NAME, true);
    jpqlFunctionGroup.add(null, new CountTupleFunction());
    jpqlFunctionGroup.add("mysql", new MySQLCountTupleFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLCountTupleFunction());
    jpqlFunctionGroup.add("db2", new CountTupleEmulationFunction());
    jpqlFunctionGroup.add("microsoft", new CountTupleEmulationFunction("+", "varchar(max)"));
    jpqlFunctionGroup.add("oracle", new CountTupleEmulationFunction());
    jpqlFunctionGroup.add("hsql", new CountTupleEmulationFunction());
    registerFunction(jpqlFunctionGroup);
    // row values
    jpqlFunctionGroup = new JpqlFunctionGroup(RowValueComparisonFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new RowValueComparisonFunction());
    registerFunction(jpqlFunctionGroup);
    // row values subquery
    jpqlFunctionGroup = new JpqlFunctionGroup(RowValueSubqueryComparisonFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new RowValueSubqueryComparisonFunction());
    registerFunction(jpqlFunctionGroup);
    // alias function
    jpqlFunctionGroup = new JpqlFunctionGroup(AliasFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new AliasFunction());
    registerFunction(jpqlFunctionGroup);
    // column trunc function
    jpqlFunctionGroup = new JpqlFunctionGroup(ColumnTruncFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new ColumnTruncFunction());
    registerFunction(jpqlFunctionGroup);
    // count wrapper function
    jpqlFunctionGroup = new JpqlFunctionGroup(CountWrapperFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new CountWrapperFunction());
    registerFunction(jpqlFunctionGroup);
    // query wrapper function
    jpqlFunctionGroup = new JpqlFunctionGroup(QueryWrapperFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new QueryWrapperFunction());
    registerFunction(jpqlFunctionGroup);
    // null subquery function
    jpqlFunctionGroup = new JpqlFunctionGroup(NullSubqueryFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new NullSubqueryFunction());
    registerFunction(jpqlFunctionGroup);
    // greatest
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractGreatestFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new DefaultGreatestFunction());
    jpqlFunctionGroup.add("db2", new MaxGreatestFunction());
    jpqlFunctionGroup.add("microsoft", new SelectMaxUnionGreatestFunction());
    registerFunction(jpqlFunctionGroup);
    // least
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractLeastFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new DefaultLeastFunction());
    jpqlFunctionGroup.add("db2", new MinLeastFunction());
    jpqlFunctionGroup.add("microsoft", new SelectMinUnionLeastFunction());
    registerFunction(jpqlFunctionGroup);
    // repeat
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractRepeatFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new DefaultRepeatFunction());
    jpqlFunctionGroup.add("oracle", new LpadRepeatFunction());
    jpqlFunctionGroup.add("microsoft", new ReplicateRepeatFunction());
    registerFunction(jpqlFunctionGroup);
    // subquery
    jpqlFunctionGroup = new JpqlFunctionGroup(SubqueryFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add(null, new SubqueryFunction());
    registerFunction(jpqlFunctionGroup);
    // every
    jpqlFunctionGroup = new JpqlFunctionGroup(EveryFunction.FUNCTION_NAME, true);
    jpqlFunctionGroup.add(null, EveryFunction.INSTANCE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? EveryFunction.INSTANCE : FallbackEveryFunction.INSTANCE);
    }
    registerFunction(jpqlFunctionGroup);
    // andagg
    jpqlFunctionGroup = new JpqlFunctionGroup("AND_AGG", true);
    jpqlFunctionGroup.add(null, EveryFunction.INSTANCE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? EveryFunction.INSTANCE : FallbackEveryFunction.INSTANCE);
    }
    registerFunction(jpqlFunctionGroup);
    // oragg
    jpqlFunctionGroup = new JpqlFunctionGroup(OrAggFunction.FUNCTION_NAME, true);
    jpqlFunctionGroup.add(null, OrAggFunction.INSTANCE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? OrAggFunction.INSTANCE : FallbackOrAggFunction.INSTANCE);
    }
    registerFunction(jpqlFunctionGroup);
    jpqlFunctionGroup = new JpqlFunctionGroup("OR_AGG", true);
    jpqlFunctionGroup.add(null, OrAggFunction.INSTANCE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? OrAggFunction.INSTANCE : FallbackOrAggFunction.INSTANCE);
    }
    registerFunction(jpqlFunctionGroup);
    // string_json_agg
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractStringJsonAggFunction.FUNCTION_NAME, true);
    {
        JpqlFunctionGroup chrFunctionGroup = functions.get(ChrFunction.FUNCTION_NAME);
        JpqlFunctionGroup replaceFunctionGroup = functions.get(ReplaceFunction.FUNCTION_NAME);
        JpqlFunctionGroup concatFunctionGroup = functions.get(ConcatFunction.FUNCTION_NAME);
        JpqlFunctionGroup groupConcatFunctionGroup = functions.get(AbstractGroupConcatFunction.FUNCTION_NAME);
        for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
            ChrFunction chrFunction = (ChrFunction) chrFunctionGroup.get(dialectEntry.getKey());
            if (chrFunction == null) {
                chrFunction = (ChrFunction) chrFunctionGroup.get(null);
            }
            ReplaceFunction replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(dialectEntry.getKey());
            if (replaceFunction == null) {
                replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(null);
            }
            ConcatFunction concatFunction = (ConcatFunction) concatFunctionGroup.get(dialectEntry.getKey());
            if (concatFunction == null) {
                concatFunction = (ConcatFunction) concatFunctionGroup.get(null);
            }
            jpqlFunctionGroup.add(dialectEntry.getKey(), new GroupConcatBasedStringJsonAggFunction((AbstractGroupConcatFunction) groupConcatFunctionGroup.get(dialectEntry.getKey()), chrFunction, replaceFunction, concatFunction));
        }
    }
    jpqlFunctionGroup.add("postgresql", new PostgreSQLStringJsonAggFunction());
    jpqlFunctionGroup.add("oracle", new OracleStringJsonAggFunction((AbstractGroupConcatFunction) findFunction(AbstractGroupConcatFunction.FUNCTION_NAME, "oracle"), (ChrFunction) findFunction(ChrFunction.FUNCTION_NAME, "oracle"), (ReplaceFunction) findFunction(ReplaceFunction.FUNCTION_NAME, "oracle"), (ConcatFunction) findFunction(ConcatFunction.FUNCTION_NAME, "oracle")));
    jpqlFunctionGroup.add("mysql", new MySQLStringJsonAggFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLStringJsonAggFunction());
    registerFunction(jpqlFunctionGroup);
    // string_xml_agg
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractStringXmlAggFunction.FUNCTION_NAME, true);
    {
        JpqlFunctionGroup replaceFunctionGroup = functions.get(ReplaceFunction.FUNCTION_NAME);
        JpqlFunctionGroup concatFunctionGroup = functions.get(ConcatFunction.FUNCTION_NAME);
        JpqlFunctionGroup groupConcatFunctionGroup = functions.get(AbstractGroupConcatFunction.FUNCTION_NAME);
        for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
            ReplaceFunction replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(dialectEntry.getKey());
            if (replaceFunction == null) {
                replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(null);
            }
            ConcatFunction concatFunction = (ConcatFunction) concatFunctionGroup.get(dialectEntry.getKey());
            if (concatFunction == null) {
                concatFunction = (ConcatFunction) concatFunctionGroup.get(null);
            }
            jpqlFunctionGroup.add(dialectEntry.getKey(), new GroupConcatBasedStringXmlAggFunction((AbstractGroupConcatFunction) groupConcatFunctionGroup.get(dialectEntry.getKey()), replaceFunction, concatFunction));
        }
    }
    jpqlFunctionGroup.add("postgresql", new PostgreSQLStringXmlAggFunction());
    jpqlFunctionGroup.add("oracle", new OracleGroupConcatBasedStringXmlAggFunction((AbstractGroupConcatFunction) findFunction(AbstractGroupConcatFunction.FUNCTION_NAME, "oracle"), (ReplaceFunction) findFunction(ReplaceFunction.FUNCTION_NAME, "oracle"), (ConcatFunction) findFunction(ConcatFunction.FUNCTION_NAME, "oracle")));
    registerFunction(jpqlFunctionGroup);
    // to_string_json
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractToStringJsonFunction.FUNCTION_NAME, false);
    {
        JpqlFunctionGroup chrFunctionGroup = functions.get(ChrFunction.FUNCTION_NAME);
        JpqlFunctionGroup replaceFunctionGroup = functions.get(ReplaceFunction.FUNCTION_NAME);
        JpqlFunctionGroup concatFunctionGroup = functions.get(ConcatFunction.FUNCTION_NAME);
        JpqlFunctionGroup groupConcatFunctionGroup = functions.get(AbstractGroupConcatFunction.FUNCTION_NAME);
        for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
            ChrFunction chrFunction = (ChrFunction) chrFunctionGroup.get(dialectEntry.getKey());
            if (chrFunction == null) {
                chrFunction = (ChrFunction) chrFunctionGroup.get(null);
            }
            ReplaceFunction replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(dialectEntry.getKey());
            if (replaceFunction == null) {
                replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(null);
            }
            ConcatFunction concatFunction = (ConcatFunction) concatFunctionGroup.get(dialectEntry.getKey());
            if (concatFunction == null) {
                concatFunction = (ConcatFunction) concatFunctionGroup.get(null);
            }
            jpqlFunctionGroup.add(dialectEntry.getKey(), new GroupConcatBasedToStringJsonFunction((AbstractGroupConcatFunction) groupConcatFunctionGroup.get(dialectEntry.getKey()), chrFunction, replaceFunction, concatFunction, dialectEntry.getValue().getLateralStyle()));
        }
    }
    jpqlFunctionGroup.add("postgresql", new PostgreSQLToStringJsonFunction());
    jpqlFunctionGroup.add("microsoft", new ForJsonPathToStringJsonFunction((CastFunction) findFunction("cast_string", "microsoft")));
    jpqlFunctionGroup.add("oracle", new OracleToStringJsonFunction((AbstractGroupConcatFunction) findFunction(AbstractGroupConcatFunction.FUNCTION_NAME, "oracle"), (ChrFunction) findFunction(ChrFunction.FUNCTION_NAME, "oracle"), (ReplaceFunction) findFunction(ReplaceFunction.FUNCTION_NAME, "oracle"), (ConcatFunction) findFunction(ConcatFunction.FUNCTION_NAME, "oracle")));
    jpqlFunctionGroup.add("mysql", new MySQLToStringJsonFunction());
    jpqlFunctionGroup.add("mysql8", new MySQLToStringJsonFunction());
    registerFunction(jpqlFunctionGroup);
    // to_string_xml
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractToStringXmlFunction.FUNCTION_NAME, false);
    {
        JpqlFunctionGroup replaceFunctionGroup = functions.get(ReplaceFunction.FUNCTION_NAME);
        JpqlFunctionGroup concatFunctionGroup = functions.get(ConcatFunction.FUNCTION_NAME);
        JpqlFunctionGroup groupConcatFunctionGroup = functions.get(AbstractGroupConcatFunction.FUNCTION_NAME);
        for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
            ReplaceFunction replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(dialectEntry.getKey());
            if (replaceFunction == null) {
                replaceFunction = (ReplaceFunction) replaceFunctionGroup.get(null);
            }
            ConcatFunction concatFunction = (ConcatFunction) concatFunctionGroup.get(dialectEntry.getKey());
            if (concatFunction == null) {
                concatFunction = (ConcatFunction) concatFunctionGroup.get(null);
            }
            jpqlFunctionGroup.add(dialectEntry.getKey(), new GroupConcatBasedToStringXmlFunction((AbstractGroupConcatFunction) groupConcatFunctionGroup.get(dialectEntry.getKey()), replaceFunction, concatFunction, dialectEntry.getValue().getLateralStyle()));
        }
    }
    jpqlFunctionGroup.add("postgresql", new PostgreSQLToStringXmlFunction());
    jpqlFunctionGroup.add("microsoft", new ForXmlPathToStringXmlFunction((CastFunction) findFunction("cast_string", "microsoft")));
    jpqlFunctionGroup.add("oracle", new OracleGroupConcatBasedToStringXmlFunction((AbstractGroupConcatFunction) findFunction(AbstractGroupConcatFunction.FUNCTION_NAME, "oracle"), (ReplaceFunction) findFunction(ReplaceFunction.FUNCTION_NAME, "oracle"), (ConcatFunction) findFunction(ConcatFunction.FUNCTION_NAME, "oracle"), LateralStyle.LATERAL));
    registerFunction(jpqlFunctionGroup);
    // to_multiset
    jpqlFunctionGroup = new JpqlFunctionGroup(ToMultisetFunction.FUNCTION_NAME, false);
    {
        JpqlFunctionGroup jsonFunctionGroup = functions.get(AbstractToStringJsonFunction.FUNCTION_NAME);
        JpqlFunctionGroup xmlFunctionGroup = functions.get(AbstractToStringXmlFunction.FUNCTION_NAME);
        for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
            AbstractToStringJsonFunction jsonFunction = (AbstractToStringJsonFunction) jsonFunctionGroup.get(dialectEntry.getKey());
            AbstractToStringXmlFunction xmlFunction = (AbstractToStringXmlFunction) xmlFunctionGroup.get(dialectEntry.getKey());
            jpqlFunctionGroup.add(dialectEntry.getKey(), new ToMultisetFunction(jsonFunction, xmlFunction));
        }
    }
    registerFunction(jpqlFunctionGroup);
    // window every
    jpqlFunctionGroup = new JpqlFunctionGroup(WindowEveryFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? new WindowEveryFunction(dialectEntry.getValue()) : new FallbackWindowEveryFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window andagg
    jpqlFunctionGroup = new JpqlFunctionGroup("AND_AGG", JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? new WindowEveryFunction(dialectEntry.getValue()) : new FallbackWindowEveryFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window oragg
    jpqlFunctionGroup = new JpqlFunctionGroup(WindowOrAggFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), dialectEntry.getValue().supportsBooleanAggregation() ? new WindowOrAggFunction(dialectEntry.getValue()) : new FallbackWindowOrAggFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window sum
    jpqlFunctionGroup = new JpqlFunctionGroup(SumFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new SumFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window avg
    jpqlFunctionGroup = new JpqlFunctionGroup(AvgFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new AvgFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window min
    jpqlFunctionGroup = new JpqlFunctionGroup(MinFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new MinFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window max
    jpqlFunctionGroup = new JpqlFunctionGroup(MaxFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new MaxFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // window count
    jpqlFunctionGroup = new JpqlFunctionGroup(CountFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new CountFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // row number
    jpqlFunctionGroup = new JpqlFunctionGroup(RowNumberFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new RowNumberFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // rank
    jpqlFunctionGroup = new JpqlFunctionGroup(RankFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new RankFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // dense_rank
    jpqlFunctionGroup = new JpqlFunctionGroup(DenseRankFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new DenseRankFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // PERCENT_RANK
    jpqlFunctionGroup = new JpqlFunctionGroup(PercentRankFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new PercentRankFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // CUME_DIST
    jpqlFunctionGroup = new JpqlFunctionGroup(CumeDistFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new CumeDistFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // NTILE
    jpqlFunctionGroup = new JpqlFunctionGroup(NtileFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new NtileFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // LAG
    jpqlFunctionGroup = new JpqlFunctionGroup(LagFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new LagFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // LEAD
    jpqlFunctionGroup = new JpqlFunctionGroup(LeadFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new LeadFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // FIRST_VALUE
    jpqlFunctionGroup = new JpqlFunctionGroup(FirstValueFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new FirstValueFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // LAST_VALUE
    jpqlFunctionGroup = new JpqlFunctionGroup(LastValueFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new LastValueFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // NTH_VALUE
    jpqlFunctionGroup = new JpqlFunctionGroup(NthValueFunction.FUNCTION_NAME, JpqlFunctionKind.WINDOW);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new NthValueFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // JSON_GET
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractJsonGetFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add("postgresql", new PostgreSQLJsonGetFunction());
    jpqlFunctionGroup.add("mysql8", new MySQL8JsonGetFunction());
    jpqlFunctionGroup.add("oracle", new OracleJsonGetFunction());
    jpqlFunctionGroup.add("db2", new DB2JsonGetFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLJsonGetFunction());
    registerFunction(jpqlFunctionGroup);
    // JSON_SET
    jpqlFunctionGroup = new JpqlFunctionGroup(AbstractJsonSetFunction.FUNCTION_NAME, false);
    jpqlFunctionGroup.add("postgresql", new PostgreSQLJsonSetFunction());
    jpqlFunctionGroup.add("mysql8", new MySQL8JsonSetFunction());
    jpqlFunctionGroup.add("oracle", new OracleJsonSetFunction());
    jpqlFunctionGroup.add("db2", new DB2JsonSetFunction());
    jpqlFunctionGroup.add("microsoft", new MSSQLJsonSetFunction());
    registerFunction(jpqlFunctionGroup);
    // grouping
    registerFunction(GroupingFunction.FUNCTION_NAME, new GroupingFunction());
    registerFunction(GroupingSetFunction.FUNCTION_NAME, new GroupingSetFunction());
    registerFunction(GroupingSetsFunction.FUNCTION_NAME, new GroupingSetsFunction());
    registerFunction(CubeFunction.FUNCTION_NAME, new CubeFunction());
    registerFunction(RollupFunction.FUNCTION_NAME, new RollupFunction());
    // MODE
    jpqlFunctionGroup = new JpqlFunctionGroup(ModeFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new ModeFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // PERCENTILE_CONT
    jpqlFunctionGroup = new JpqlFunctionGroup(PercentileContFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new PercentileContFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
    // PERCENTILE_DISC
    jpqlFunctionGroup = new JpqlFunctionGroup(PercentileDiscFunction.FUNCTION_NAME, JpqlFunctionKind.ORDERED_SET_AGGREGATE);
    for (Map.Entry<String, DbmsDialect> dialectEntry : this.dbmsDialects.entrySet()) {
        jpqlFunctionGroup.add(dialectEntry.getKey(), new PercentileDiscFunction(dialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
}
Also used : PostgreSQLQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.PostgreSQLQuarterDiffFunction) MSSQLSecondFunction(com.blazebit.persistence.impl.function.datetime.second.MSSQLSecondFunction) MySQLTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.MySQLTruncWeekFunction) OracleHourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.OracleHourDiffFunction) JpqlFunctionGroup(com.blazebit.persistence.spi.JpqlFunctionGroup) PostgreSQLJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.PostgreSQLJsonSetFunction) OracleListaggGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.OracleListaggGroupConcatFunction) MSSQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.MSSQLMicrosecondFunction) PercentileDiscFunction(com.blazebit.persistence.impl.function.window.percentiledisc.PercentileDiscFunction) AbstractToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.AbstractToStringJsonFunction) MySQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.MySQLMillisecondFunction) DB2CastFunction(com.blazebit.persistence.impl.function.cast.DB2CastFunction) CastFunction(com.blazebit.persistence.impl.function.cast.CastFunction) DefaultEpochFunction(com.blazebit.persistence.impl.function.datetime.epoch.DefaultEpochFunction) MSSQLWeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.MSSQLWeekDiffFunction) MSSQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.MSSQLDayOfWeekFunction) SumFunction(com.blazebit.persistence.impl.function.window.sum.SumFunction) WeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.WeekInYearFunction) DB2TruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.DB2TruncYearFunction) DB2DayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.DB2DayOfYearFunction) SybaseDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SybaseDayOfYearFunction) MySQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MySQLDayOfYearFunction) PostgreSQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.PostgreSQLTruncYearFunction) H2TruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.H2TruncYearFunction) MSSQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.MSSQLTruncYearFunction) SybaseYearFunction(com.blazebit.persistence.impl.function.datetime.year.SybaseYearFunction) MySQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.MySQLTruncYearFunction) AccessDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.AccessDayOfYearFunction) PostgreSQLYearFunction(com.blazebit.persistence.impl.function.datetime.year.PostgreSQLYearFunction) MySQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MySQLWeekInYearFunction) OracleDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.OracleDayOfYearFunction) PostgreSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.PostgreSQLDayOfYearFunction) MSSQLYearFunction(com.blazebit.persistence.impl.function.datetime.year.MSSQLYearFunction) DB2WeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.DB2WeekInYearFunction) YearFunction(com.blazebit.persistence.impl.function.datetime.year.YearFunction) OracleWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.OracleWeekInYearFunction) SqliteYearFunction(com.blazebit.persistence.impl.function.datetime.year.SqliteYearFunction) MSSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MSSQLDayOfYearFunction) TruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.TruncYearFunction) DerbyYearFunction(com.blazebit.persistence.impl.function.datetime.year.DerbyYearFunction) AccessYearFunction(com.blazebit.persistence.impl.function.datetime.year.AccessYearFunction) SqliteDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SqliteDayOfYearFunction) DayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.DayOfYearFunction) OracleTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.OracleTruncYearFunction) DB2YearFunction(com.blazebit.persistence.impl.function.datetime.year.DB2YearFunction) PostgreSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.PostgreSQLWeekInYearFunction) MSSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MSSQLWeekInYearFunction) PostgreSQLHourFunction(com.blazebit.persistence.impl.function.datetime.hour.PostgreSQLHourFunction) OracleJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.OracleJsonSetFunction) SybaseMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.SybaseMillisecondFunction) OracleTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.OracleTruncDayFunction) DB2EpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.DB2EpochMillisecondFunction) FallbackWindowOrAggFunction(com.blazebit.persistence.impl.function.window.oragg.FallbackWindowOrAggFunction) WindowOrAggFunction(com.blazebit.persistence.impl.function.window.oragg.WindowOrAggFunction) SybaseIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SybaseIsoDayOfWeekFunction) DB2DayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.DB2DayAddFunction) MSSQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.MSSQLYearOfWeekFunction) MySQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.MySQLYearOfWeekFunction) OracleTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.OracleTruncYearFunction) DB2MillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.DB2MillisecondDiffFunction) LiteralInstantFunction(com.blazebit.persistence.impl.function.literal.LiteralInstantFunction) MySQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.MySQLMinuteAddFunction) SybaseMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.SybaseMicrosecondFunction) H2TruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.H2TruncMillisecondsFunction) PercentileContFunction(com.blazebit.persistence.impl.function.window.percentilecont.PercentileContFunction) MySQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MySQLWeekInYearFunction) OraclePagePositionFunction(com.blazebit.persistence.impl.function.pageposition.OraclePagePositionFunction) MySQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.MySQLTruncQuarterFunction) PostgreSQLQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.PostgreSQLQuarterFunction) PostgreSQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.PostgreSQLTruncQuarterFunction) SybaseQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.SybaseQuarterFunction) SqliteQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.SqliteQuarterFunction) QuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.QuarterFunction) OracleTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.OracleTruncQuarterFunction) TruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.TruncQuarterFunction) DB2TruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.DB2TruncQuarterFunction) AccessQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.AccessQuarterFunction) DB2QuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.DB2QuarterFunction) OracleQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.OracleQuarterFunction) H2TruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.H2TruncQuarterFunction) MSSQLQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.MSSQLQuarterFunction) MSSQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.MSSQLTruncQuarterFunction) OracleMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.OracleMicrosecondFunction) SybaseMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.SybaseMinuteFunction) OracleWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.OracleWeekAddFunction) WeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.WeekAddFunction) DB2WeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.DB2WeekAddFunction) PostgreSQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.PostgreSQLWeekAddFunction) H2WeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.H2WeekAddFunction) MSSQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.MSSQLWeekAddFunction) MySQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.MySQLWeekAddFunction) MSSQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.MSSQLMillisecondFunction) PostgreSQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.PostgreSQLEpochMicrosecondFunction) H2QuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.H2QuarterAddFunction) H2WeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.H2WeekAddFunction) H2IsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.H2IsoWeekFunction) MySQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.MySQLMicrosecondFunction) MSSQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.MSSQLSecondAddFunction) OracleEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.OracleEpochDayFunction) MySQLEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.MySQLEpochDayFunction) DB2TruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.DB2TruncDayFunction) MSSQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.MSSQLTruncDayFunction) DB2DayFunction(com.blazebit.persistence.impl.function.datetime.day.DB2DayFunction) DayFunction(com.blazebit.persistence.impl.function.datetime.day.DayFunction) MySQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.MySQLTruncDayFunction) DB2EpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.DB2EpochDayFunction) AccessDayFunction(com.blazebit.persistence.impl.function.datetime.day.AccessDayFunction) MSSQLDayFunction(com.blazebit.persistence.impl.function.datetime.day.MSSQLDayFunction) SybaseDayFunction(com.blazebit.persistence.impl.function.datetime.day.SybaseDayFunction) PostgreSQLDayFunction(com.blazebit.persistence.impl.function.datetime.day.PostgreSQLDayFunction) PostgreSQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.PostgreSQLTruncDayFunction) H2TruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.H2TruncDayFunction) TruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.TruncDayFunction) PostgreSQLEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.PostgreSQLEpochDayFunction) SqliteDayFunction(com.blazebit.persistence.impl.function.datetime.day.SqliteDayFunction) OracleTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.OracleTruncDayFunction) DerbyDayFunction(com.blazebit.persistence.impl.function.datetime.day.DerbyDayFunction) DefaultEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.DefaultEpochDayFunction) MySQLHourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.MySQLHourDiffFunction) OracleMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.OracleMinuteAddFunction) MySQLMonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.MySQLMonthDiffFunction) MySQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.MySQLTruncMinuteFunction) H2TruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.H2TruncHourFunction) LpadRepeatFunction(com.blazebit.persistence.impl.function.repeat.LpadRepeatFunction) MySQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.MySQLGroupConcatFunction) WindowEveryFunction(com.blazebit.persistence.impl.function.window.every.WindowEveryFunction) FallbackWindowEveryFunction(com.blazebit.persistence.impl.function.window.every.FallbackWindowEveryFunction) MySQLEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.MySQLEpochDayFunction) DB2DayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.DB2DayOfYearFunction) SybaseDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SybaseDayOfYearFunction) MySQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MySQLDayOfYearFunction) AccessDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.AccessDayOfYearFunction) OracleDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.OracleDayOfYearFunction) PostgreSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.PostgreSQLDayOfYearFunction) MSSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MSSQLDayOfYearFunction) SqliteDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SqliteDayOfYearFunction) DayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.DayOfYearFunction) SqliteHourFunction(com.blazebit.persistence.impl.function.datetime.hour.SqliteHourFunction) DerbySecondFunction(com.blazebit.persistence.impl.function.datetime.second.DerbySecondFunction) MSSQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.MSSQLGroupConcatFunction) AccessDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.AccessDayOfWeekFunction) MySQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.MySQLMillisecondsAddFunction) MSSQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.MSSQLTruncHourFunction) RowValueSubqueryComparisonFunction(com.blazebit.persistence.impl.function.rowvalue.RowValueSubqueryComparisonFunction) H2GroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.H2GroupConcatFunction) ConcatFunction(com.blazebit.persistence.impl.function.concat.ConcatFunction) PipeBasedConcatFunction(com.blazebit.persistence.impl.function.concat.PipeBasedConcatFunction) PostgreSQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.PostgreSQLGroupConcatFunction) OracleListaggGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.OracleListaggGroupConcatFunction) PlusBasedConcatFunction(com.blazebit.persistence.impl.function.concat.PlusBasedConcatFunction) MSSQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.MSSQLGroupConcatFunction) AbstractGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.AbstractGroupConcatFunction) MySQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.MySQLGroupConcatFunction) DB2GroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.DB2GroupConcatFunction) MSSQLYearFunction(com.blazebit.persistence.impl.function.datetime.year.MSSQLYearFunction) MySQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.MySQLMicrosecondFunction) MSSQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.MSSQLEpochMicrosecondFunction) DefaultEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.DefaultEpochMicrosecondFunction) PostgreSQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.PostgreSQLEpochMicrosecondFunction) MSSQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.MSSQLMicrosecondFunction) MicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.MicrosecondFunction) OracleEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.OracleEpochMicrosecondFunction) PostgreSQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.PostgreSQLMicrosecondFunction) OracleMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.OracleMicrosecondFunction) SybaseMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.SybaseMicrosecondFunction) DB2EpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.DB2EpochMicrosecondFunction) MySQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.MySQLEpochMicrosecondFunction) DB2MicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.DB2MicrosecondFunction) MSSQLMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.MSSQLMicrosecondDiffFunction) OracleMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.OracleMillisecondDiffFunction) PostgreSQLTruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.PostgreSQLTruncMicrosecondsFunction) GroupConcatBasedToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.GroupConcatBasedToStringJsonFunction) MSSQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.MSSQLTruncSecondFunction) PostgreSQLEpochFunction(com.blazebit.persistence.impl.function.datetime.epoch.PostgreSQLEpochFunction) OracleTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.OracleTruncWeekFunction) H2TruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.H2TruncMicrosecondsFunction) H2YearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.H2YearAddFunction) GroupingSetFunction(com.blazebit.persistence.impl.function.groupingsets.GroupingSetFunction) DB2TruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.DB2TruncSecondFunction) OracleYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.OracleYearOfWeekFunction) MSSQLHourFunction(com.blazebit.persistence.impl.function.datetime.hour.MSSQLHourFunction) AccessMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.AccessMillisecondDiffFunction) SqliteIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.SqliteIsoWeekFunction) MSSQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.MSSQLIsoWeekFunction) DB2IsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.DB2IsoWeekFunction) IsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.IsoWeekFunction) H2IsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.H2IsoWeekFunction) OracleIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.OracleIsoWeekFunction) PostgreSQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.PostgreSQLIsoWeekFunction) MySQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.MySQLIsoWeekFunction) SybaseIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.SybaseIsoWeekFunction) AccessIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.AccessIsoWeekFunction) PostgreSQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.PostgreSQLTruncSecondFunction) PostgreSQLToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.PostgreSQLToStringJsonFunction) MillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.MillisecondFunction) MySQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.MySQLMillisecondFunction) DB2MillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.DB2MillisecondFunction) SybaseMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.SybaseMillisecondFunction) OracleMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.OracleMillisecondFunction) DB2EpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.DB2EpochMillisecondFunction) MySQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.MySQLEpochMillisecondFunction) DefaultEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.DefaultEpochMillisecondFunction) MSSQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.MSSQLMillisecondFunction) OracleEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.OracleEpochMillisecondFunction) MSSQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.MSSQLEpochMillisecondFunction) PostgreSQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.PostgreSQLMillisecondFunction) PostgreSQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.PostgreSQLEpochMillisecondFunction) MSSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MSSQLDayOfYearFunction) PostgreSQLYearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.PostgreSQLYearDiffFunction) MySQLCountTupleFunction(com.blazebit.persistence.impl.function.count.MySQLCountTupleFunction) CountTupleFunction(com.blazebit.persistence.impl.function.count.CountTupleFunction) DB2JsonSetFunction(com.blazebit.persistence.impl.function.jsonset.DB2JsonSetFunction) MSSQLTruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.MSSQLTruncMillisecondsFunction) DB2TruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.DB2TruncMicrosecondsFunction) LeadFunction(com.blazebit.persistence.impl.function.window.lead.LeadFunction) MSSQLDbmsDialect(com.blazebit.persistence.impl.dialect.MSSQLDbmsDialect) DB2DbmsDialect(com.blazebit.persistence.impl.dialect.DB2DbmsDialect) DbmsDialect(com.blazebit.persistence.spi.DbmsDialect) OracleDbmsDialect(com.blazebit.persistence.impl.dialect.OracleDbmsDialect) H2DbmsDialect(com.blazebit.persistence.impl.dialect.H2DbmsDialect) CockroachSQLDbmsDialect(com.blazebit.persistence.impl.dialect.CockroachSQLDbmsDialect) DefaultDbmsDialect(com.blazebit.persistence.impl.dialect.DefaultDbmsDialect) MySQL8DbmsDialect(com.blazebit.persistence.impl.dialect.MySQL8DbmsDialect) PostgreSQLDbmsDialect(com.blazebit.persistence.impl.dialect.PostgreSQLDbmsDialect) MySQLDbmsDialect(com.blazebit.persistence.impl.dialect.MySQLDbmsDialect) DB2MinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.DB2MinuteDiffFunction) PostgreSQLStringJsonAggFunction(com.blazebit.persistence.impl.function.stringjsonagg.PostgreSQLStringJsonAggFunction) YearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.YearAddFunction) DB2YearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.DB2YearAddFunction) PostgreSQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.PostgreSQLYearAddFunction) OracleYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.OracleYearAddFunction) MSSQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.MSSQLYearAddFunction) MySQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.MySQLYearAddFunction) H2YearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.H2YearAddFunction) OracleDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.OracleDayOfWeekFunction) SybaseDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.SybaseDayOfWeekFunction) AccessDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.AccessDayOfYearFunction) AccessDayFunction(com.blazebit.persistence.impl.function.datetime.day.AccessDayFunction) CumeDistFunction(com.blazebit.persistence.impl.function.window.cumedist.CumeDistFunction) PostgreSQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.PostgreSQLEpochMillisecondFunction) OracleTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.OracleTruncSecondFunction) MySQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.MySQLMicrosecondsAddFunction) SqliteIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.SqliteIsoWeekFunction) DefaultSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.DefaultSecondDiffFunction) H2SecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.H2SecondAddFunction) DB2QuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.DB2QuarterDiffFunction) AccessIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.AccessIsoWeekFunction) SybaseHourFunction(com.blazebit.persistence.impl.function.datetime.hour.SybaseHourFunction) DenseRankFunction(com.blazebit.persistence.impl.function.window.denserank.DenseRankFunction) MySQLPagePositionFunction(com.blazebit.persistence.impl.function.pageposition.MySQLPagePositionFunction) DB2MonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.DB2MonthDiffFunction) OracleTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.OracleTruncQuarterFunction) MySQL8JsonSetFunction(com.blazebit.persistence.impl.function.jsonset.MySQL8JsonSetFunction) OracleIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.OracleIsoDayOfWeekFunction) PostgreSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.PostgreSQLIsoDayOfWeekFunction) DayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.DayOfWeekFunction) MSSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MSSQLIsoDayOfWeekFunction) MySQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MySQLIsoDayOfWeekFunction) AccessDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.AccessDayOfWeekFunction) AccessIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.AccessIsoDayOfWeekFunction) MSSQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.MSSQLDayOfWeekFunction) IsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.IsoDayOfWeekFunction) DB2DayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.DB2DayOfWeekFunction) SybaseDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.SybaseDayOfWeekFunction) OracleDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.OracleDayOfWeekFunction) PostgreSQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.PostgreSQLDayOfWeekFunction) DB2IsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.DB2IsoDayOfWeekFunction) SqliteIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SqliteIsoDayOfWeekFunction) SybaseIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SybaseIsoDayOfWeekFunction) SqliteDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.SqliteDayOfWeekFunction) MySQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.MySQLDayOfWeekFunction) AccessHourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.AccessHourDiffFunction) OracleMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.OracleMinuteFunction) DB2MonthFunction(com.blazebit.persistence.impl.function.datetime.month.DB2MonthFunction) OracleWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.OracleWeekInYearFunction) OracleWeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.OracleWeekDiffFunction) DB2MinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.DB2MinuteFunction) LiteralZonedDateTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralZonedDateTimeFunction) DefaultYearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.DefaultYearDiffFunction) MSSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MSSQLWeekInYearFunction) MySQLWeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.MySQLWeekDiffFunction) LiteralOffsetDateTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralOffsetDateTimeFunction) DB2EpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.DB2EpochMicrosecondFunction) AccessQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.AccessQuarterFunction) GroupConcatBasedStringXmlAggFunction(com.blazebit.persistence.impl.function.stringxmlagg.GroupConcatBasedStringXmlAggFunction) OracleGroupConcatBasedStringXmlAggFunction(com.blazebit.persistence.impl.function.stringxmlagg.OracleGroupConcatBasedStringXmlAggFunction) CollectionDmlSupportFunction(com.blazebit.persistence.impl.function.colldml.CollectionDmlSupportFunction) H2HourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.H2HourAddFunction) H2QuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.H2QuarterDiffFunction) PostgreSQLDayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.PostgreSQLDayDiffFunction) AccessHourFunction(com.blazebit.persistence.impl.function.datetime.hour.AccessHourFunction) DB2HourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.DB2HourDiffFunction) DB2YearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.DB2YearDiffFunction) DB2MicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.DB2MicrosecondFunction) LiteralLocalDateTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralLocalDateTimeFunction) DB2HourFunction(com.blazebit.persistence.impl.function.datetime.hour.DB2HourFunction) PercentRankFunction(com.blazebit.persistence.impl.function.window.percentrank.PercentRankFunction) NullSubqueryFunction(com.blazebit.persistence.impl.function.nullsubquery.NullSubqueryFunction) OracleTruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.OracleTruncMicrosecondsFunction) MySQLMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.MySQLMicrosecondDiffFunction) PostgreSQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.PostgreSQLTruncDayFunction) OracleQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.OracleQuarterFunction) MySQLSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.MySQLSecondDiffFunction) OracleQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.OracleQuarterDiffFunction) OracleTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.OracleTruncMinuteFunction) MSSQLDayFunction(com.blazebit.persistence.impl.function.datetime.day.MSSQLDayFunction) PostgreSQLMonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.PostgreSQLMonthDiffFunction) DerbyDayFunction(com.blazebit.persistence.impl.function.datetime.day.DerbyDayFunction) MySQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.MySQLTruncYearFunction) ReplicateRepeatFunction(com.blazebit.persistence.impl.function.repeat.ReplicateRepeatFunction) OracleSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.OracleSecondDiffFunction) OracleMinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.OracleMinuteDiffFunction) AvgFunction(com.blazebit.persistence.impl.function.window.avg.AvgFunction) MySQLTruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.MySQLTruncMillisecondsFunction) MySQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.MySQLTruncQuarterFunction) Map(java.util.Map) HashMap(java.util.HashMap) OracleIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.OracleIsoDayOfWeekFunction) PostgreSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.PostgreSQLIsoDayOfWeekFunction) MSSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MSSQLIsoDayOfWeekFunction) MySQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MySQLIsoDayOfWeekFunction) AccessIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.AccessIsoDayOfWeekFunction) IsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.IsoDayOfWeekFunction) DB2IsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.DB2IsoDayOfWeekFunction) SqliteIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SqliteIsoDayOfWeekFunction) SybaseIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SybaseIsoDayOfWeekFunction) MSSQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.MSSQLTruncMonthFunction) PostgreSQLMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.microsecond.PostgreSQLMicrosecondFunction) OracleMonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.OracleMonthDiffFunction) MySQLTruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.MySQLTruncMicrosecondsFunction) OracleMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.OracleMicrosecondDiffFunction) PostgreSQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.PostgreSQLMonthAddFunction) MSSQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.MSSQLMinuteAddFunction) H2WeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.H2WeekDiffFunction) NullSubqueryFunction(com.blazebit.persistence.impl.function.nullsubquery.NullSubqueryFunction) SubqueryFunction(com.blazebit.persistence.impl.function.subquery.SubqueryFunction) DB2DayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.DB2DayDiffFunction) PagePositionFunction(com.blazebit.persistence.impl.function.pageposition.PagePositionFunction) OraclePagePositionFunction(com.blazebit.persistence.impl.function.pageposition.OraclePagePositionFunction) MySQLPagePositionFunction(com.blazebit.persistence.impl.function.pageposition.MySQLPagePositionFunction) TransactSQLPagePositionFunction(com.blazebit.persistence.impl.function.pageposition.TransactSQLPagePositionFunction) OracleSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.OracleSecondAddFunction) MSSQLSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.MSSQLSecondDiffFunction) AccessMonthFunction(com.blazebit.persistence.impl.function.datetime.month.AccessMonthFunction) MSSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MSSQLIsoDayOfWeekFunction) PostgreSQLStringXmlAggFunction(com.blazebit.persistence.impl.function.stringxmlagg.PostgreSQLStringXmlAggFunction) DefaultHourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.DefaultHourDiffFunction) DB2SecondFunction(com.blazebit.persistence.impl.function.datetime.second.DB2SecondFunction) DB2TruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.DB2TruncSecondFunction) SqliteSecondFunction(com.blazebit.persistence.impl.function.datetime.second.SqliteSecondFunction) SecondFunction(com.blazebit.persistence.impl.function.datetime.second.SecondFunction) OracleTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.OracleTruncSecondFunction) MSSQLSecondFunction(com.blazebit.persistence.impl.function.datetime.second.MSSQLSecondFunction) AccessSecondFunction(com.blazebit.persistence.impl.function.datetime.second.AccessSecondFunction) DerbySecondFunction(com.blazebit.persistence.impl.function.datetime.second.DerbySecondFunction) H2TruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.H2TruncSecondFunction) TruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.TruncSecondFunction) MySQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.MySQLTruncSecondFunction) SybaseSecondFunction(com.blazebit.persistence.impl.function.datetime.second.SybaseSecondFunction) PostgreSQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.PostgreSQLTruncSecondFunction) OracleSecondFunction(com.blazebit.persistence.impl.function.datetime.second.OracleSecondFunction) PostgreSQLSecondFunction(com.blazebit.persistence.impl.function.datetime.second.PostgreSQLSecondFunction) MSSQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.MSSQLTruncSecondFunction) OracleSecondFunction(com.blazebit.persistence.impl.function.datetime.second.OracleSecondFunction) ToMultisetFunction(com.blazebit.persistence.impl.function.tomultiset.ToMultisetFunction) OracleHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.OracleHourAddFunction) MSSQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.MSSQLHourAddFunction) H2HourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.H2HourAddFunction) OracleHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.OracleHourAddFunction) DB2HourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.DB2HourAddFunction) PostgreSQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.PostgreSQLHourAddFunction) HourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.HourAddFunction) MySQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.MySQLHourAddFunction) MySQLEpochFunction(com.blazebit.persistence.impl.function.datetime.epoch.MySQLEpochFunction) PostgreSQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.PostgreSQLHourAddFunction) ForXmlPathToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.ForXmlPathToStringXmlFunction) AbstractToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.AbstractToStringXmlFunction) MSSQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.MSSQLTruncYearFunction) MySQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.MySQLTruncMonthFunction) OracleEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.OracleEpochDayFunction) DB2WeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.DB2WeekDiffFunction) DB2HourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.DB2HourAddFunction) LiteralTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralTimeFunction) MSSQLTruncMicrosecondsFunction(com.blazebit.persistence.impl.function.trunc.microseconds.MSSQLTruncMicrosecondsFunction) MySQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.MySQLTruncDayFunction) YearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.YearOfWeekFunction) DB2YearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.DB2YearOfWeekFunction) PostgreSQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.PostgreSQLYearOfWeekFunction) MSSQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.MSSQLYearOfWeekFunction) MySQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.MySQLYearOfWeekFunction) OracleYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.OracleYearOfWeekFunction) DefaultMinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.DefaultMinuteDiffFunction) AccessMinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.AccessMinuteDiffFunction) OracleStringJsonAggFunction(com.blazebit.persistence.impl.function.stringjsonagg.OracleStringJsonAggFunction) OracleWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.OracleWeekAddFunction) OracleMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.OracleMillisecondFunction) PostgreSQLToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.PostgreSQLToStringXmlFunction) PostgreSQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.PostgreSQLTruncMonthFunction) MSSQLMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.MSSQLMillisecondDiffFunction) MySQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.MySQLIsoWeekFunction) SqliteIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.SqliteIsoDayOfWeekFunction) SybaseDayFunction(com.blazebit.persistence.impl.function.datetime.day.SybaseDayFunction) NtileFunction(com.blazebit.persistence.impl.function.window.ntile.NtileFunction) DB2EpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.DB2EpochDayFunction) OracleYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.OracleYearWeekFunction) MSSQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.MSSQLMicrosecondsAddFunction) PostgreSQLTruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.PostgreSQLTruncMillisecondsFunction) H2GroupConcatWindowFunction(com.blazebit.persistence.impl.function.window.groupconcat.H2GroupConcatWindowFunction) AccessQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.AccessQuarterDiffFunction) MinLeastFunction(com.blazebit.persistence.impl.function.least.MinLeastFunction) DB2QuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.DB2QuarterAddFunction) OracleHourFunction(com.blazebit.persistence.impl.function.datetime.hour.OracleHourFunction) NthValueFunction(com.blazebit.persistence.impl.function.window.nth.NthValueFunction) SelectMaxUnionGreatestFunction(com.blazebit.persistence.impl.function.greatest.SelectMaxUnionGreatestFunction) ChrFunction(com.blazebit.persistence.impl.function.chr.ChrFunction) CharChrFunction(com.blazebit.persistence.impl.function.chr.CharChrFunction) DB2WeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.DB2WeekInYearFunction) PostgreSQLSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.PostgreSQLSecondDiffFunction) DB2MicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.DB2MicrosecondDiffFunction) DefaultGreatestFunction(com.blazebit.persistence.impl.function.greatest.DefaultGreatestFunction) MSSQLMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.MSSQLMinuteFunction) H2MicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.H2MicrosecondsAddFunction) MySQLTruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.MySQLTruncSecondFunction) DefaultQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.DefaultQuarterDiffFunction) LiteralDateTimestampFunction(com.blazebit.persistence.impl.function.literal.LiteralDateTimestampFunction) MSSQLTruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.MSSQLTruncDayFunction) MySQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.MySQLYearAddFunction) PostgreSQLTruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.PostgreSQLTruncYearFunction) H2YearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.H2YearWeekFunction) H2TruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.H2TruncMinuteFunction) LiteralDateFunction(com.blazebit.persistence.impl.function.literal.LiteralDateFunction) LiteralLocalDateFunction(com.blazebit.persistence.impl.function.literal.LiteralLocalDateFunction) PostgreSQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.PostgreSQLSecondAddFunction) OracleJsonGetFunction(com.blazebit.persistence.impl.function.jsonget.OracleJsonGetFunction) LiteralTimestampFunction(com.blazebit.persistence.impl.function.literal.LiteralTimestampFunction) DerbyMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.DerbyMinuteFunction) SqliteYearFunction(com.blazebit.persistence.impl.function.datetime.year.SqliteYearFunction) OracleToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.OracleToStringJsonFunction) OracleIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.OracleIsoDayOfWeekFunction) OracleEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.OracleEpochMillisecondFunction) PostgreSQLYearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.PostgreSQLYearOfWeekFunction) DefaultRepeatFunction(com.blazebit.persistence.impl.function.repeat.DefaultRepeatFunction) LagFunction(com.blazebit.persistence.impl.function.window.lag.LagFunction) CubeFunction(com.blazebit.persistence.impl.function.groupingsets.CubeFunction) PostgreSQLDayFunction(com.blazebit.persistence.impl.function.datetime.day.PostgreSQLDayFunction) OracleEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.OracleEpochMicrosecondFunction) H2MinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.H2MinuteAddFunction) DB2TruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.DB2TruncMonthFunction) NullfnFunction(com.blazebit.persistence.impl.function.nullfn.NullfnFunction) OracleQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.OracleQuarterAddFunction) AccessMonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.AccessMonthDiffFunction) SqliteMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.SqliteMinuteFunction) DB2SecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.DB2SecondAddFunction) MySQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.MySQLTruncHourFunction) OracleMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.OracleMonthAddFunction) PostgreSQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.PostgreSQLTruncMinuteFunction) ForJsonPathToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.ForJsonPathToStringJsonFunction) MySQLToStringJsonFunction(com.blazebit.persistence.impl.function.tostringjson.MySQLToStringJsonFunction) DB2MicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.DB2MicrosecondsAddFunction) PostgreSQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.PostgreSQLYearAddFunction) DerbyMonthFunction(com.blazebit.persistence.impl.function.datetime.month.DerbyMonthFunction) PostgreSQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.PostgreSQLIsoDayOfWeekFunction) PostgreSQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.PostgreSQLIsoWeekFunction) MSSQLQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.MSSQLQuarterFunction) DB2YearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.DB2YearAddFunction) PostgreSQLWeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.PostgreSQLWeekDiffFunction) AccessDayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.AccessDayDiffFunction) FallbackWindowEveryFunction(com.blazebit.persistence.impl.function.window.every.FallbackWindowEveryFunction) DefaultEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.DefaultEpochMicrosecondFunction) DB2TruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.DB2TruncHourFunction) OracleYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.OracleYearAddFunction) CountTupleEmulationFunction(com.blazebit.persistence.impl.function.count.CountTupleEmulationFunction) PostgreSQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.PostgreSQLMillisecondsAddFunction) DefaultMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.DefaultMillisecondDiffFunction) MySQLMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.MySQLMillisecondDiffFunction) DB2GroupConcatWindowFunction(com.blazebit.persistence.impl.function.window.groupconcat.DB2GroupConcatWindowFunction) LiteralLocalTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralLocalTimeFunction) DB2YearFunction(com.blazebit.persistence.impl.function.datetime.year.DB2YearFunction) MySQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.MySQLDayOfYearFunction) DefaultMonthDiffFunction(com.blazebit.persistence.impl.function.datediff.month.DefaultMonthDiffFunction) MinFunction(com.blazebit.persistence.impl.function.window.min.MinFunction) PostgreSQLGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.PostgreSQLGroupConcatFunction) DB2YearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.DB2YearWeekFunction) SqliteMonthFunction(com.blazebit.persistence.impl.function.datetime.month.SqliteMonthFunction) OracleMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.OracleMillisecondsAddFunction) QueryWrapperFunction(com.blazebit.persistence.impl.function.querywrapper.QueryWrapperFunction) OracleIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.OracleIsoWeekFunction) OracleDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.OracleDayOfYearFunction) MSSQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.MSSQLHourAddFunction) OracleTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.OracleTruncMonthFunction) SqliteDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SqliteDayOfYearFunction) AccessYearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.AccessYearDiffFunction) OracleMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.OracleMinuteAddFunction) PostgreSQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.PostgreSQLMinuteAddFunction) H2MinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.H2MinuteAddFunction) MinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.MinuteAddFunction) DB2MinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.DB2MinuteAddFunction) MySQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.MySQLMinuteAddFunction) MSSQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.MSSQLMinuteAddFunction) H2TruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.H2TruncDayFunction) MSSQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.MSSQLTruncQuarterFunction) PostgreSQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.PostgreSQLWeekAddFunction) FallbackWindowOrAggFunction(com.blazebit.persistence.impl.function.window.oragg.FallbackWindowOrAggFunction) DefaultEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.DefaultEpochDayFunction) PostgreSQLJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.PostgreSQLJsonSetFunction) MySQL8JsonSetFunction(com.blazebit.persistence.impl.function.jsonset.MySQL8JsonSetFunction) MSSQLJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.MSSQLJsonSetFunction) GroupingSetFunction(com.blazebit.persistence.impl.function.groupingsets.GroupingSetFunction) SetFunction(com.blazebit.persistence.impl.function.set.SetFunction) AbstractJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.AbstractJsonSetFunction) DB2JsonSetFunction(com.blazebit.persistence.impl.function.jsonset.DB2JsonSetFunction) OracleJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.OracleJsonSetFunction) MySQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.MySQLSecondAddFunction) RowNumberFunction(com.blazebit.persistence.impl.function.window.row.RowNumberFunction) MySQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.MySQLQuarterAddFunction) CountFunction(com.blazebit.persistence.impl.function.window.count.CountFunction) AbstractCountFunction(com.blazebit.persistence.impl.function.count.AbstractCountFunction) OracleListaggGroupConcatWindowFunction(com.blazebit.persistence.impl.function.window.groupconcat.OracleListaggGroupConcatWindowFunction) SybaseQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.SybaseQuarterFunction) GroupingSetsFunction(com.blazebit.persistence.impl.function.groupingsets.GroupingSetsFunction) PostgreSQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.PostgreSQLMillisecondsAddFunction) MySQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.MySQLMillisecondsAddFunction) DB2MillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.DB2MillisecondsAddFunction) H2MillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.H2MillisecondsAddFunction) MillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.MillisecondsAddFunction) OracleMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.OracleMillisecondsAddFunction) MSSQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.MSSQLMillisecondsAddFunction) MySQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.MySQLWeekAddFunction) SybaseYearFunction(com.blazebit.persistence.impl.function.datetime.year.SybaseYearFunction) H2TruncSecondFunction(com.blazebit.persistence.impl.function.trunc.second.H2TruncSecondFunction) AccessYearFunction(com.blazebit.persistence.impl.function.datetime.year.AccessYearFunction) DB2SecondFunction(com.blazebit.persistence.impl.function.datetime.second.DB2SecondFunction) OracleMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.OracleMicrosecondsAddFunction) AccessMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.AccessMicrosecondDiffFunction) MySQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.MySQLDayOfWeekFunction) SqliteMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.SqliteMinuteFunction) MSSQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.MSSQLTruncMinuteFunction) OracleTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.OracleTruncMinuteFunction) DerbyMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.DerbyMinuteFunction) MSSQLMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.MSSQLMinuteFunction) AccessMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.AccessMinuteFunction) DB2TruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.DB2TruncMinuteFunction) PostgreSQLMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.PostgreSQLMinuteFunction) PostgreSQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.PostgreSQLTruncMinuteFunction) SybaseMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.SybaseMinuteFunction) TruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.TruncMinuteFunction) OracleMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.OracleMinuteFunction) DB2MinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.DB2MinuteFunction) MySQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.MySQLTruncMinuteFunction) H2TruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.H2TruncMinuteFunction) MinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.MinuteFunction) PostgreSQLMinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.PostgreSQLMinuteDiffFunction) MySQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.MySQLEpochMillisecondFunction) DB2CastFunction(com.blazebit.persistence.impl.function.cast.DB2CastFunction) MySQLQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.MySQLQuarterDiffFunction) AliasFunction(com.blazebit.persistence.impl.function.alias.AliasFunction) MySQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.MySQLMonthAddFunction) MSSQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.MSSQLMonthAddFunction) MonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.MonthAddFunction) H2MonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.H2MonthAddFunction) DB2MonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.DB2MonthAddFunction) OracleMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.OracleMonthAddFunction) PostgreSQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.PostgreSQLMonthAddFunction) MSSQLTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.MSSQLTruncWeekFunction) DB2TruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.DB2TruncMinuteFunction) TransactSQLPagePositionFunction(com.blazebit.persistence.impl.function.pageposition.TransactSQLPagePositionFunction) LiteralCalendarFunction(com.blazebit.persistence.impl.function.literal.LiteralCalendarFunction) DB2MonthFunction(com.blazebit.persistence.impl.function.datetime.month.DB2MonthFunction) PostgreSQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.PostgreSQLTruncMonthFunction) SybaseMonthFunction(com.blazebit.persistence.impl.function.datetime.month.SybaseMonthFunction) PostgreSQLMonthFunction(com.blazebit.persistence.impl.function.datetime.month.PostgreSQLMonthFunction) H2TruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.H2TruncMonthFunction) AccessMonthFunction(com.blazebit.persistence.impl.function.datetime.month.AccessMonthFunction) TruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.TruncMonthFunction) SqliteMonthFunction(com.blazebit.persistence.impl.function.datetime.month.SqliteMonthFunction) MySQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.MySQLTruncMonthFunction) DB2TruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.DB2TruncMonthFunction) MSSQLMonthFunction(com.blazebit.persistence.impl.function.datetime.month.MSSQLMonthFunction) OracleTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.OracleTruncMonthFunction) MSSQLTruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.MSSQLTruncMonthFunction) DerbyMonthFunction(com.blazebit.persistence.impl.function.datetime.month.DerbyMonthFunction) MonthFunction(com.blazebit.persistence.impl.function.datetime.month.MonthFunction) SqliteHourFunction(com.blazebit.persistence.impl.function.datetime.hour.SqliteHourFunction) PostgreSQLHourFunction(com.blazebit.persistence.impl.function.datetime.hour.PostgreSQLHourFunction) SybaseHourFunction(com.blazebit.persistence.impl.function.datetime.hour.SybaseHourFunction) DB2HourFunction(com.blazebit.persistence.impl.function.datetime.hour.DB2HourFunction) AccessHourFunction(com.blazebit.persistence.impl.function.datetime.hour.AccessHourFunction) OracleHourFunction(com.blazebit.persistence.impl.function.datetime.hour.OracleHourFunction) MSSQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.MSSQLTruncHourFunction) MSSQLHourFunction(com.blazebit.persistence.impl.function.datetime.hour.MSSQLHourFunction) OracleTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.OracleTruncHourFunction) H2TruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.H2TruncHourFunction) MySQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.MySQLTruncHourFunction) HourFunction(com.blazebit.persistence.impl.function.datetime.hour.HourFunction) DB2TruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.DB2TruncHourFunction) PostgreSQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.PostgreSQLTruncHourFunction) DerbyHourFunction(com.blazebit.persistence.impl.function.datetime.hour.DerbyHourFunction) TruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.TruncHourFunction) MSSQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.MSSQLMonthAddFunction) MySQLMonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.MySQLMonthAddFunction) OracleTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.OracleTruncHourFunction) PostgreSQLDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.PostgreSQLDayOfWeekFunction) MySQLStringJsonAggFunction(com.blazebit.persistence.impl.function.stringjsonagg.MySQLStringJsonAggFunction) OracleGroupConcatBasedToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.OracleGroupConcatBasedToStringXmlFunction) GroupConcatBasedToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.GroupConcatBasedToStringXmlFunction) DB2TruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.DB2TruncQuarterFunction) PostgreSQLJsonGetFunction(com.blazebit.persistence.impl.function.jsonget.PostgreSQLJsonGetFunction) DB2TruncDayFunction(com.blazebit.persistence.impl.function.trunc.day.DB2TruncDayFunction) DB2DayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.DB2DayOfYearFunction) MySQLMinuteDiffFunction(com.blazebit.persistence.impl.function.datediff.minute.MySQLMinuteDiffFunction) TruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.TruncWeekFunction) MSSQLTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.MSSQLTruncWeekFunction) MySQLTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.MySQLTruncWeekFunction) OracleTruncWeekFunction(com.blazebit.persistence.impl.function.trunc.week.OracleTruncWeekFunction) PostgreSQLMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.PostgreSQLMicrosecondDiffFunction) AccessSecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.AccessSecondDiffFunction) PostgreSQLSecondFunction(com.blazebit.persistence.impl.function.datetime.second.PostgreSQLSecondFunction) MSSQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.MSSQLDayAddFunction) SqliteQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.SqliteQuarterFunction) MSSQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.MSSQLQuarterAddFunction) MSSQLJsonGetFunction(com.blazebit.persistence.impl.function.jsonget.MSSQLJsonGetFunction) MySQLCountTupleFunction(com.blazebit.persistence.impl.function.count.MySQLCountTupleFunction) OracleGroupConcatBasedStringXmlAggFunction(com.blazebit.persistence.impl.function.stringxmlagg.OracleGroupConcatBasedStringXmlAggFunction) PostgreSQLMinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.PostgreSQLMinuteAddFunction) SybaseMonthFunction(com.blazebit.persistence.impl.function.datetime.month.SybaseMonthFunction) MySQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.MySQLDayAddFunction) GroupingFunction(com.blazebit.persistence.impl.function.grouping.GroupingFunction) OracleYearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.OracleYearDiffFunction) MSSQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.MSSQLYearWeekFunction) MySQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.MySQLYearWeekFunction) H2YearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.H2YearWeekFunction) OracleYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.OracleYearWeekFunction) PostgreSQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.PostgreSQLYearWeekFunction) YearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.YearWeekFunction) DB2YearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.DB2YearWeekFunction) H2DayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.H2DayAddFunction) SelectMinUnionLeastFunction(com.blazebit.persistence.impl.function.least.SelectMinUnionLeastFunction) H2GroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.H2GroupConcatFunction) DB2MillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.DB2MillisecondsAddFunction) MySQLYearDiffFunction(com.blazebit.persistence.impl.function.datediff.year.MySQLYearDiffFunction) DefaultEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.DefaultEpochMillisecondFunction) DerbyYearFunction(com.blazebit.persistence.impl.function.datetime.year.DerbyYearFunction) H2TruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.H2TruncYearFunction) DB2JsonGetFunction(com.blazebit.persistence.impl.function.jsonget.DB2JsonGetFunction) MSSQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.MSSQLEpochMicrosecondFunction) DefaultWeekDiffFunction(com.blazebit.persistence.impl.function.datediff.week.DefaultWeekDiffFunction) RollupFunction(com.blazebit.persistence.impl.function.groupingsets.RollupFunction) DB2MonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.DB2MonthAddFunction) PostgreSQLBase64Function(com.blazebit.persistence.impl.function.base64.PostgreSQLBase64Function) OracleTruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.OracleTruncMillisecondsFunction) Base64Function(com.blazebit.persistence.impl.function.base64.Base64Function) PostgreSQLBase64Function(com.blazebit.persistence.impl.function.base64.PostgreSQLBase64Function) PostgreSQLMonthFunction(com.blazebit.persistence.impl.function.datetime.month.PostgreSQLMonthFunction) PostgreSQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.PostgreSQLMicrosecondsAddFunction) DefaultDayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.DefaultDayDiffFunction) MySQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.MySQLYearWeekFunction) DB2MillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.DB2MillisecondFunction) DefaultMicrosecondDiffFunction(com.blazebit.persistence.impl.function.datediff.microsecond.DefaultMicrosecondDiffFunction) LastValueFunction(com.blazebit.persistence.impl.function.window.last.LastValueFunction) DB2IsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.DB2IsoDayOfWeekFunction) DB2TruncYearFunction(com.blazebit.persistence.impl.function.trunc.year.DB2TruncYearFunction) OracleGroupConcatBasedToStringXmlFunction(com.blazebit.persistence.impl.function.tostringxml.OracleGroupConcatBasedToStringXmlFunction) DB2TruncMillisecondsFunction(com.blazebit.persistence.impl.function.trunc.milliseconds.DB2TruncMillisecondsFunction) MSSQLJsonSetFunction(com.blazebit.persistence.impl.function.jsonset.MSSQLJsonSetFunction) PostgreSQLQuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.PostgreSQLQuarterFunction) PostgreSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.PostgreSQLWeekInYearFunction) H2TruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.H2TruncQuarterFunction) MSSQLIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.MSSQLIsoWeekFunction) PostgreSQLYearFunction(com.blazebit.persistence.impl.function.datetime.year.PostgreSQLYearFunction) MySQLHourAddFunction(com.blazebit.persistence.impl.function.dateadd.hour.MySQLHourAddFunction) DB2QuarterFunction(com.blazebit.persistence.impl.function.datetime.quarter.DB2QuarterFunction) SqliteDayFunction(com.blazebit.persistence.impl.function.datetime.day.SqliteDayFunction) ExistFunction(com.blazebit.persistence.impl.function.exist.ExistFunction) DB2WeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.DB2WeekAddFunction) PostgreSQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.PostgreSQLQuarterAddFunction) H2TruncMonthFunction(com.blazebit.persistence.impl.function.trunc.month.H2TruncMonthFunction) OracleDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.OracleDayAddFunction) MSSQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.MSSQLDayAddFunction) DayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.DayAddFunction) DB2DayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.DB2DayAddFunction) MySQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.MySQLDayAddFunction) PostgreSQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.PostgreSQLDayAddFunction) H2DayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.H2DayAddFunction) MSSQLTruncMinuteFunction(com.blazebit.persistence.impl.function.trunc.minute.MSSQLTruncMinuteFunction) MySQL8JsonGetFunction(com.blazebit.persistence.impl.function.jsonget.MySQL8JsonGetFunction) MSSQLQuarterDiffFunction(com.blazebit.persistence.impl.function.datediff.quarter.MSSQLQuarterDiffFunction) OracleDayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.OracleDayDiffFunction) PostgreSQLHourDiffFunction(com.blazebit.persistence.impl.function.datediff.hour.PostgreSQLHourDiffFunction) ParamFunction(com.blazebit.persistence.impl.function.param.ParamFunction) DB2EpochFunction(com.blazebit.persistence.impl.function.datetime.epoch.DB2EpochFunction) AbstractGroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.AbstractGroupConcatFunction) PostgreSQLMillisecondFunction(com.blazebit.persistence.impl.function.datetime.millisecond.PostgreSQLMillisecondFunction) PostgreSQLMillisecondDiffFunction(com.blazebit.persistence.impl.function.datediff.millisecond.PostgreSQLMillisecondDiffFunction) MSSQLMonthFunction(com.blazebit.persistence.impl.function.datetime.month.MSSQLMonthFunction) AccessIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.AccessIsoDayOfWeekFunction) MSSQLMillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.MSSQLMillisecondsAddFunction) SetOperationType(com.blazebit.persistence.spi.SetOperationType) MaxGreatestFunction(com.blazebit.persistence.impl.function.greatest.MaxGreatestFunction) SybaseIsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.SybaseIsoWeekFunction) OracleEpochFunction(com.blazebit.persistence.impl.function.datetime.epoch.OracleEpochFunction) MSSQLWeekAddFunction(com.blazebit.persistence.impl.function.dateadd.week.MSSQLWeekAddFunction) DB2DayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.DB2DayOfWeekFunction) ColumnTruncFunction(com.blazebit.persistence.impl.function.coltrunc.ColumnTruncFunction) AccessSecondFunction(com.blazebit.persistence.impl.function.datetime.second.AccessSecondFunction) PostgreSQLTruncHourFunction(com.blazebit.persistence.impl.function.trunc.hour.PostgreSQLTruncHourFunction) MSSQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.MSSQLYearWeekFunction) MSSQLEpochMillisecondFunction(com.blazebit.persistence.impl.function.datetime.epochmilli.MSSQLEpochMillisecondFunction) DB2SecondDiffFunction(com.blazebit.persistence.impl.function.datediff.second.DB2SecondDiffFunction) MySQLIsoDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.isodayofweek.MySQLIsoDayOfWeekFunction) PostgreSQLMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.PostgreSQLMinuteFunction) MySQLDayDiffFunction(com.blazebit.persistence.impl.function.datediff.day.MySQLDayDiffFunction) SqliteDayOfWeekFunction(com.blazebit.persistence.impl.function.datetime.dayofweek.SqliteDayOfWeekFunction) DerbyHourFunction(com.blazebit.persistence.impl.function.datetime.hour.DerbyHourFunction) RowValueComparisonFunction(com.blazebit.persistence.impl.function.rowvalue.RowValueComparisonFunction) PostgreSQLGroupConcatWindowFunction(com.blazebit.persistence.impl.function.window.groupconcat.PostgreSQLGroupConcatWindowFunction) OracleDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.OracleDayAddFunction) MSSQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.MSSQLSecondAddFunction) SecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.SecondAddFunction) H2SecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.H2SecondAddFunction) OracleSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.OracleSecondAddFunction) MySQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.MySQLSecondAddFunction) DB2SecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.DB2SecondAddFunction) PostgreSQLSecondAddFunction(com.blazebit.persistence.impl.function.dateadd.second.PostgreSQLSecondAddFunction) SybaseSecondFunction(com.blazebit.persistence.impl.function.datetime.second.SybaseSecondFunction) PostgreSQLYearWeekFunction(com.blazebit.persistence.impl.function.datetime.yearweek.PostgreSQLYearWeekFunction) DB2IsoWeekFunction(com.blazebit.persistence.impl.function.datetime.isoweek.DB2IsoWeekFunction) PostgreSQLTruncQuarterFunction(com.blazebit.persistence.impl.function.trunc.quarter.PostgreSQLTruncQuarterFunction) SybaseDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.SybaseDayOfYearFunction) PostgreSQLDayAddFunction(com.blazebit.persistence.impl.function.dateadd.day.PostgreSQLDayAddFunction) PercentRankFunction(com.blazebit.persistence.impl.function.window.percentrank.PercentRankFunction) RankFunction(com.blazebit.persistence.impl.function.window.rank.RankFunction) DenseRankFunction(com.blazebit.persistence.impl.function.window.denserank.DenseRankFunction) FirstValueFunction(com.blazebit.persistence.impl.function.window.first.FirstValueFunction) LiteralOffsetTimeFunction(com.blazebit.persistence.impl.function.literal.LiteralOffsetTimeFunction) GroupConcatBasedStringJsonAggFunction(com.blazebit.persistence.impl.function.stringjsonagg.GroupConcatBasedStringJsonAggFunction) H2MonthAddFunction(com.blazebit.persistence.impl.function.dateadd.month.H2MonthAddFunction) PostgreSQLEpochDayFunction(com.blazebit.persistence.impl.function.datetime.epochday.PostgreSQLEpochDayFunction) H2MillisecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.milliseconds.H2MillisecondsAddFunction) SqliteSecondFunction(com.blazebit.persistence.impl.function.datetime.second.SqliteSecondFunction) MSSQLYearAddFunction(com.blazebit.persistence.impl.function.dateadd.year.MSSQLYearAddFunction) DB2YearOfWeekFunction(com.blazebit.persistence.impl.function.datetime.yearofweek.DB2YearOfWeekFunction) PostgreSQLDayOfYearFunction(com.blazebit.persistence.impl.function.datetime.dayofyear.PostgreSQLDayOfYearFunction) DB2MinuteAddFunction(com.blazebit.persistence.impl.function.dateadd.minute.DB2MinuteAddFunction) CountWrapperFunction(com.blazebit.persistence.impl.function.countwrapper.CountWrapperFunction) ReplaceFunction(com.blazebit.persistence.impl.function.replace.ReplaceFunction) ModeFunction(com.blazebit.persistence.impl.function.window.mode.ModeFunction) MySQLEpochMicrosecondFunction(com.blazebit.persistence.impl.function.datetime.epochmicro.MySQLEpochMicrosecondFunction) EntityFunction(com.blazebit.persistence.impl.function.entity.EntityFunction) MySQLGroupConcatWindowFunction(com.blazebit.persistence.impl.function.window.groupconcat.MySQLGroupConcatWindowFunction) CharChrFunction(com.blazebit.persistence.impl.function.chr.CharChrFunction) OracleQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.OracleQuarterAddFunction) QuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.QuarterAddFunction) PostgreSQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.PostgreSQLQuarterAddFunction) DB2QuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.DB2QuarterAddFunction) H2QuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.H2QuarterAddFunction) MSSQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.MSSQLQuarterAddFunction) MySQLQuarterAddFunction(com.blazebit.persistence.impl.function.dateadd.quarter.MySQLQuarterAddFunction) MySQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.MySQLMicrosecondsAddFunction) OracleMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.OracleMicrosecondsAddFunction) MicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.MicrosecondsAddFunction) MSSQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.MSSQLMicrosecondsAddFunction) H2MicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.H2MicrosecondsAddFunction) DB2MicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.DB2MicrosecondsAddFunction) PostgreSQLMicrosecondsAddFunction(com.blazebit.persistence.impl.function.dateadd.microseconds.PostgreSQLMicrosecondsAddFunction) MaxFunction(com.blazebit.persistence.impl.function.window.max.MaxFunction) DB2GroupConcatFunction(com.blazebit.persistence.impl.function.groupconcat.DB2GroupConcatFunction) AccessMinuteFunction(com.blazebit.persistence.impl.function.datetime.minute.AccessMinuteFunction) WeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.WeekInYearFunction) MySQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MySQLWeekInYearFunction) DB2WeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.DB2WeekInYearFunction) OracleWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.OracleWeekInYearFunction) PostgreSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.PostgreSQLWeekInYearFunction) MSSQLWeekInYearFunction(com.blazebit.persistence.impl.function.datetime.week.MSSQLWeekInYearFunction) DB2DayFunction(com.blazebit.persistence.impl.function.datetime.day.DB2DayFunction) DefaultLeastFunction(com.blazebit.persistence.impl.function.least.DefaultLeastFunction) LimitFunction(com.blazebit.persistence.impl.function.limit.LimitFunction)

Aggregations

CockroachSQLDbmsDialect (com.blazebit.persistence.impl.dialect.CockroachSQLDbmsDialect)1 DB2DbmsDialect (com.blazebit.persistence.impl.dialect.DB2DbmsDialect)1 DefaultDbmsDialect (com.blazebit.persistence.impl.dialect.DefaultDbmsDialect)1 H2DbmsDialect (com.blazebit.persistence.impl.dialect.H2DbmsDialect)1 MSSQLDbmsDialect (com.blazebit.persistence.impl.dialect.MSSQLDbmsDialect)1 MySQL8DbmsDialect (com.blazebit.persistence.impl.dialect.MySQL8DbmsDialect)1 MySQLDbmsDialect (com.blazebit.persistence.impl.dialect.MySQLDbmsDialect)1 OracleDbmsDialect (com.blazebit.persistence.impl.dialect.OracleDbmsDialect)1 PostgreSQLDbmsDialect (com.blazebit.persistence.impl.dialect.PostgreSQLDbmsDialect)1 AliasFunction (com.blazebit.persistence.impl.function.alias.AliasFunction)1 Base64Function (com.blazebit.persistence.impl.function.base64.Base64Function)1 PostgreSQLBase64Function (com.blazebit.persistence.impl.function.base64.PostgreSQLBase64Function)1 CastFunction (com.blazebit.persistence.impl.function.cast.CastFunction)1 DB2CastFunction (com.blazebit.persistence.impl.function.cast.DB2CastFunction)1 CharChrFunction (com.blazebit.persistence.impl.function.chr.CharChrFunction)1 ChrFunction (com.blazebit.persistence.impl.function.chr.ChrFunction)1 CollectionDmlSupportFunction (com.blazebit.persistence.impl.function.colldml.CollectionDmlSupportFunction)1 ColumnTruncFunction (com.blazebit.persistence.impl.function.coltrunc.ColumnTruncFunction)1 ConcatFunction (com.blazebit.persistence.impl.function.concat.ConcatFunction)1 PipeBasedConcatFunction (com.blazebit.persistence.impl.function.concat.PipeBasedConcatFunction)1