--
-- time_interval__shift/3
--
create or replace function time_interval__shift(
  integer,
  integer,
  integer
) returns int4 as $$

declare 
      shift__interval_id      alias for $1;
      shift__start_offset     alias for $2; -- default 0,
      shift__end_offset       alias for $3; -- default 0
begin

      return time_interval__shift(
	         shift__interval_id,
		 to_interval(shift__start_offset,'days'),
		 to_interval(shift__end_offset,'days')
		 );

end;$$ language plpgsql;


--
-- time_interval__shift/3
--
create or replace function time_interval__shift(
  integer,
  interval,
  interval
) returns int4 as $$

declare 
       shift__interval_id      alias for $1;
       shift__start_offset     alias for $2; -- default 0,
       shift__end_offset       alias for $3; -- default 0
begin
       update time_intervals
       set    start_date = start_date + shift__start_offset,
              end_date   = end_date + shift__end_offset
       where  interval_id = shift__interval_id;

       return 0;

end;$$ language plpgsql;