void
Repeater::do_load()
{
    SQLStatement statement
    (   database_connection(),
        "select interval_units, interval_type_id, next_date, journal_id "
        "from repeaters where repeater_id = :p"
    );
    statement.bind(":p", id());
    statement.step();
    Repeater temp(*this);
    temp.m_data->frequency = Frequency
    (   statement.extract<int>(0),
        static_cast<IntervalType>(statement.extract<int>(1))
    );
    temp.m_data->next_date =
        numeric_cast<DateRep>(statement.extract<long long>(2));
    temp.m_data->journal_id = statement.extract<Id>(3);
    swap(temp);
    JEWEL_ASSERT
    (   is_valid_date_for_interval_type
        (   boost_date_from_julian_int(value(m_data->next_date)),
            value(m_data->frequency).step_type()
        )
    );
    return;
}