--
-- timespan__join_interval/3
--
create or replace function timespan__join_interval(
  integer,
  integer,
  boolean
) returns int4 as $$
    -- time_intervals.interval_id%TYPE
declare
       join_interval__timespan_id     alias for $1;
       join_interval__interval_id     alias for $2;
       join_interval__copy_p          alias for $3; -- default true
       v_interval_id		      time_intervals.interval_id%TYPE;
begin
       if join_interval__copy_p then
           v_interval_id := time_interval__copy(join_interval__interval_id);
       else
           v_interval_id := join_interval__interval_id;
       end if;
        
       insert into timespans
            (timespan_id, interval_id)
       values
            (join_interval__timespan_id, v_interval_id);

       -- JS: We might as well return the interval id being joined, instead of returning a dummy integer
       return v_interval_id;

end;$$ language plpgsql;