-- -- acs_event__shift_all/3 -- create or replace function acs_event__shift_all( integer, integer, integer ) returns int4 as $$ declare shift_all__event_id alias for $1; -- default null, shift_all__start_offset alias for $2; -- default 0, shift_all__end_offset alias for $3; -- default 0 begin return acs_event__shift_all ( shift_all__event_id, to_interval(shift_all__start_offset,'days'), to_interval(shift_all__end_offset,'days') ); end;$$ language plpgsql; -- -- acs_event__shift_all/3 -- create or replace function acs_event__shift_all( integer, interval, interval ) returns int4 as $$ declare shift_all__event_id alias for $1; -- default null, shift_all__start_offset alias for $2; -- default 0, shift_all__end_offset alias for $3; -- default 0 rec_events record; begin -- update acs_events_dates -- set start_date = start_date + shift_all__start_offset, -- end_date = end_date + shift_all__end_offset -- where recurrence_id = (select recurrence_id -- from acs_events -- where event_id = shift_all__event_id); -- Can not update views for rec_events in select * from acs_events_dates where recurrence_id = (select recurrence_id from acs_events where event_id = shift_all__event_id) loop PERFORM acs_event__shift( rec_events.event_id, shift_all__start_offset, shift_all__end_offset ); end loop; return 0; end;$$ language plpgsql;