-- -- acs_event__new_instance/2 -- create or replace function acs_event__new_instance( new_instance__event_id integer, new_instance__date_offset interval ) returns int4 as $$ DECLARE event_row acs_events%ROWTYPE; object_row acs_objects%ROWTYPE; v_event_id acs_events.event_id%TYPE; v_timespan_id acs_events.timespan_id%TYPE; BEGIN -- Get event parameters select * into event_row from acs_events where event_id = new_instance__event_id; -- Get object parameters select * into object_row from acs_objects where object_id = new_instance__event_id; -- We allow non-zero offset, so we copy v_timespan_id := timespan__copy(event_row.timespan_id, new_instance__date_offset); -- Create a new instance v_event_id := acs_event__new( null, -- event_id (default) event_row.name, -- name event_row.description, -- description event_row.html_p, -- html_p event_row.status_summary, -- status_summary v_timespan_id, -- timespan_id event_row.activity_id, -- activity_id` event_row.recurrence_id, -- recurrence_id 'acs_event', -- object_type (default) now(), -- creation_date (default) object_row.creation_user, -- creation_user object_row.creation_ip, -- creation_ip object_row.context_id, -- context_id object_row.package_id, -- package_id event_row.location, -- location event_row.related_link_url, -- related_link_url event_row.related_link_text, -- related_link_text event_row.redirect_to_rel_link_p -- redirect_to_rel_link_p ); return v_event_id; END; $$ language plpgsql;