-- -- -- -- @author Victor Guerra (vguerra@gmail.com) -- @creation-date 2010-11-05 -- @cvs-id $Id: upgrade-0.6d3-0.6d4.sql,v 1.2 2013/03/30 13:00:30 gustafn Exp $ -- -- PG 9.x support - changes regarding usage of sequences drop view acs_events_seq; drop sequence acs_events_sequence; drop view timespan_seq; drop view recurrence_seq; -- added select define_function_args('time_interval__new','start_date;null,end_date;null'); -- -- procedure time_interval__new/2 -- CREATE OR REPLACE FUNCTION time_interval__new( new__start_date timestamptz, -- default null, new__end_date timestamptz -- default null ) RETURNS integer AS $$ DECLARE v_interval_id time_intervals.interval_id%TYPE; BEGIN select nextval('timespan_sequence') into v_interval_id from dual; insert into time_intervals (interval_id, start_date, end_date) values (v_interval_id, new__start_date, new__end_date); return v_interval_id; END; $$ LANGUAGE plpgsql; -- added -- -- procedure timespan__new/2 -- CREATE OR REPLACE FUNCTION timespan__new( new__interval_id integer, new__copy_p boolean ) RETURNS integer AS $$ -- timespans.timespan_id%TYPE DECLARE v_timespan_id timespans.timespan_id%TYPE; v_interval_id time_intervals.interval_id%TYPE; BEGIN -- get a new id; select nextval('timespan_sequence') into v_timespan_id from dual; if new__copy_p then -- JS: Note use of overloaded function (zero offset) v_interval_id := time_interval__copy(new__interval_id); else v_interval_id := new__interval_id; end if; insert into timespans (timespan_id, interval_id) values (v_timespan_id, v_interval_id); return v_timespan_id; END; $$ LANGUAGE plpgsql; -- added select define_function_args('recurrence__new','interval_name,every_nth_interval,days_of_week;null,recur_until;null,custom_func;null'); -- -- procedure recurrence__new/5 -- CREATE OR REPLACE FUNCTION recurrence__new( new__interval_name varchar, new__every_nth_interval integer, new__days_of_week varchar, -- default null, new__recur_until timestamptz, -- default null, new__custom_func varchar -- default null ) RETURNS integer AS $$ -- recurrences.recurrence_id%TYPE DECLARE v_recurrence_id recurrences.recurrence_id%TYPE; v_interval_type_id recurrence_interval_types.interval_type%TYPE; BEGIN select nextval('recurrence_sequence') into v_recurrence_id from dual; select interval_type into v_interval_type_id from recurrence_interval_types where interval_name = new__interval_name; insert into recurrences (recurrence_id, interval_type, every_nth_interval, days_of_week, recur_until, custom_func) values (v_recurrence_id, v_interval_type_id, new__every_nth_interval, new__days_of_week, new__recur_until, new__custom_func); return v_recurrence_id; END; $$ LANGUAGE plpgsql;