Program: 168916
Project: 168916
Buggy source:
private void loadFunctions(){
  JpqlFunctionGroup jpqlFunctionGroup;
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new LimitFunction(dbmsDialects.get(null)));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",null);
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new PagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLPagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new OraclePagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new TransactSQLPagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new TransactSQLPagePositionFunction());
  registerFunction(jpqlFunctionGroup);
  for (  SetOperationType setType : SetOperationType.values()) {
    jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str" + setType.name().toLowerCase(),false);
    for (    Map.Entry<String,DbmsDialect> dbmsDialectEntry : dbmsDialects.entrySet()) {
      jpqlFunctionGroup.add(dbmsDialectEntry.getKey(),new SetFunction(setType,dbmsDialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
  }
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(BigDecimal.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Long.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Integer.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Short.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Byte.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Double.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Float.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Boolean.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Character.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Date.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Timestamp.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Time.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Calendar.class)));
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",true);
  jpqlFunctionGroup.add("String_Node_Str",new DB2GroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new OracleGroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new H2GroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLGroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLGroupConcatFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new YearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2YearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseYearFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new MonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseMonthFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new DayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2DayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseDayFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new HourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2HourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseHourFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new MinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseMinuteFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new SecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessSecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2SecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbySecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerSecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseSecondFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2YearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLYearDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLMonthDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2DayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLDayDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2HourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLHourDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLMinuteDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2SecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLSecondDiffFunction());
  registerFunction(jpqlFunctionGroup);
}

Fixed version (ground truth):
private void loadFunctions(){
  JpqlFunctionGroup jpqlFunctionGroup;
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new LimitFunction(dbmsDialects.get(null)));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",new LimitFunction(dbmsDialects.get("String_Node_Str")));
  jpqlFunctionGroup.add("String_Node_Str",null);
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new PagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLPagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new OraclePagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new TransactSQLPagePositionFunction());
  jpqlFunctionGroup.add("String_Node_Str",new TransactSQLPagePositionFunction());
  registerFunction(jpqlFunctionGroup);
  for (  SetOperationType setType : SetOperationType.values()) {
    jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str" + setType.name().toLowerCase(),false);
    for (    Map.Entry<String,DbmsDialect> dbmsDialectEntry : dbmsDialects.entrySet()) {
      jpqlFunctionGroup.add(dbmsDialectEntry.getKey(),new SetFunction(setType,dbmsDialectEntry.getValue()));
    }
    registerFunction(jpqlFunctionGroup);
  }
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Boolean.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Byte.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Short.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Integer.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Long.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Float.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Double.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Character.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(String.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(BigInteger.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(BigDecimal.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Time.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(java.sql.Date.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Timestamp.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str",new TreatFunction(Calendar.class)));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  registerFunction(new JpqlFunctionGroup("String_Node_Str"));
  for (  Map.Entry<String,DbmsDialect> dbmsDialectEntry : dbmsDialects.entrySet()) {
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Boolean.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Byte.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Short.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Integer.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Long.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Float.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Double.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Character.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(String.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(BigInteger.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(BigDecimal.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Time.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(java.sql.Date.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Timestamp.class,dbmsDialectEntry.getValue()));
    functions.get("String_Node_Str").add(dbmsDialectEntry.getKey(),new CastFunction(Calendar.class,dbmsDialectEntry.getValue()));
  }
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",true);
  jpqlFunctionGroup.add("String_Node_Str",new DB2GroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new OracleGroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new H2GroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLGroupConcatFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLGroupConcatFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new YearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2YearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerYearFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseYearFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new MonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerMonthFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseMonthFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new DayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2DayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerDayFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseDayFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new HourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2HourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerHourFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseHourFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new MinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbyMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerMinuteFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseMinuteFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add(null,new SecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new AccessSecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2SecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DerbySecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SQLServerSecondFunction());
  jpqlFunctionGroup.add("String_Node_Str",new SybaseSecondFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2YearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultYearDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLYearDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMonthDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLMonthDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2DayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultDayDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLDayDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2HourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultHourDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLHourDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2MinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultMinuteDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLMinuteDiffFunction());
  registerFunction(jpqlFunctionGroup);
  jpqlFunctionGroup=new JpqlFunctionGroup("String_Node_Str",false);
  jpqlFunctionGroup.add("String_Node_Str",new AccessSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DB2SecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new MySQLSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new DefaultSecondDiffFunction());
  jpqlFunctionGroup.add("String_Node_Str",new PostgreSQLSecondDiffFunction());
  registerFunction(jpqlFunctionGroup);
}