@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object intervalInfoObj = intervalParser.parse(sourceData, rowIndex, context);
        Object dateObj = datetimeParser.parse(sourceData, rowIndex, context);
        if (intervalInfoObj == null || dateObj == null) {
            return null;
        }
        return DateUtil.dateTypeAdd(OperatorTools.parseString(dateObj),
                (IntervalInfo) intervalInfoObj, true);
    }
DateAddFunction  ->  DATE_ADD(dateStr,INTERVAL intervalExprStr KEYWORD)
Description:
- Return NULL if dateStr is NULL.
- Return DATE if the date argument is a DATE value and your calculations involve only YEAR, MONTH, and DAY parts
         (that is, no time parts).
- Return TIME if the date argument is a TIME value and the calculations involve only HOURS, MINUTES,
         and SECONDS parts (that is, no date parts).
- Return DATETIME if the first argument is a DATETIME (or TIMESTAMP) value, or if the first argument is a DATE
         and the unit value uses HOURS, MINUTES, or SECONDS, or if the first argument is of type TIME and the
         unit value uses YEAR, MONTH, or DAY.
- Return String otherwise (type VARCHAR).
Note: Regarding the type of KEYWORD, please refer to the description of Interval on the MySQL official website.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/temporal/DateAddFunction.java