class BeamSqlDatetimePlusExpression extends BeamSqlExpression {

  @Override
  public BeamSqlPrimitive evaluate(
      Row inputRow, BoundedWindow window, BeamSqlExpressionEnvironment env) {
    DateTime timestamp = getTimestampOperand(inputRow, window, env);
    BeamSqlPrimitive intervalOperandPrimitive = getIntervalOperand(inputRow, window, env);
    SqlTypeName intervalOperandType = intervalOperandPrimitive.getOutputType();
    int intervalMultiplier = getIntervalMultiplier(intervalOperandPrimitive);

    DateTime newDate = addInterval(timestamp, intervalOperandType, intervalMultiplier);
    return BeamSqlPrimitive.of(SqlTypeName.TIMESTAMP, newDate);
  }

  public  BeamSqlDatetimePlusExpression(List<BeamSqlExpression> operands);

}