Index: openacs-4/packages/acs-events/acs-events.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/acs-events.info,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-events/acs-events.info 10 Oct 2009 22:38:09 -0000 1.19 +++ openacs-4/packages/acs-events/acs-events.info 8 Nov 2010 13:10:35 -0000 1.20 @@ -7,15 +7,15 @@ f t - + OpenACS API support for relationships between intervals in time, activities, and parties. 2006-02-18 OpenACS The events service is primarily intended for use by writers of application packages and other service packages. The service allows developers to specify and manipulate relationships (possibly recurring) between an object and another object. 0 - + Index: openacs-4/packages/acs-events/sql/postgresql/acs-events-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/acs-events-create.sql,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-events/sql/postgresql/acs-events-create.sql 29 Aug 2008 15:13:49 -0000 1.17 +++ openacs-4/packages/acs-events/sql/postgresql/acs-events-create.sql 8 Nov 2010 13:10:35 -0000 1.18 @@ -11,9 +11,6 @@ \i timespan-create.sql \i recurrence-create.sql --- Sequence for event tables that are not subclasses of acs_object -create sequence acs_events_sequence start 1; -create view acs_events_seq as select nextval('acs_events_sequence') as nextval from dual; create or replace function inline_0 () returns integer as ' Index: openacs-4/packages/acs-events/sql/postgresql/acs-events-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/acs-events-drop.sql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-events/sql/postgresql/acs-events-drop.sql 13 Jul 2001 02:41:39 -0000 1.1 +++ openacs-4/packages/acs-events/sql/postgresql/acs-events-drop.sql 8 Nov 2010 13:10:35 -0000 1.2 @@ -14,8 +14,6 @@ drop index acs_events_recurrence_id_idx; drop table acs_events; -drop sequence acs_events_sequence; -drop view acs_events_seq; \i recurrence-drop.sql \i timespan-drop.sql Index: openacs-4/packages/acs-events/sql/postgresql/recurrence-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/recurrence-create.sql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-events/sql/postgresql/recurrence-create.sql 17 May 2003 09:46:57 -0000 1.2 +++ openacs-4/packages/acs-events/sql/postgresql/recurrence-create.sql 8 Nov 2010 13:10:35 -0000 1.3 @@ -8,7 +8,6 @@ -- Sequence for recurrence tables create sequence recurrence_sequence start 1; -create view recurrence_seq as select nextval('recurrence_sequence') as nextval; -- These columns describe how an event recurs. The are modeled on the Palm DateBook. -- The interval_type 'custom' indicates that the PL/SQL function referenced in @@ -154,7 +153,7 @@ v_interval_type_id recurrence_interval_types.interval_type%TYPE; begin - select recurrence_seq.nextval into v_recurrence_id from dual; + select nextval(''recurrence_sequence'') into v_recurrence_id from dual; select interval_type into v_interval_type_id Index: openacs-4/packages/acs-events/sql/postgresql/recurrence-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/recurrence-drop.sql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-events/sql/postgresql/recurrence-drop.sql 13 Jul 2001 02:51:01 -0000 1.1 +++ openacs-4/packages/acs-events/sql/postgresql/recurrence-drop.sql 8 Nov 2010 13:10:35 -0000 1.2 @@ -11,4 +11,4 @@ drop table recurrence_interval_types; drop sequence recurrence_sequence; -drop view recurrence_seq; + Index: openacs-4/packages/acs-events/sql/postgresql/timespan-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/timespan-create.sql,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-events/sql/postgresql/timespan-create.sql 8 Aug 2006 21:26:13 -0000 1.4 +++ openacs-4/packages/acs-events/sql/postgresql/timespan-create.sql 8 Nov 2010 13:10:35 -0000 1.5 @@ -8,7 +8,7 @@ -- $Id$ create sequence timespan_sequence start 1; -create view timespan_seq as select nextval('timespan_sequence') as nextval from dual; +-- create view timespan_seq as select nextval('timespan_sequence') as nextval from dual; -- Table for storing time intervals. Note that time intervals can be open on -- either end. This is represented by a null value for start_date or end_date. @@ -70,7 +70,7 @@ new__end_date alias for $2; -- default null v_interval_id time_intervals.interval_id%TYPE; begin - select timespan_seq.nextval into v_interval_id from dual; + select nextval(''timespan_sequence'') into v_interval_id from dual; insert into time_intervals (interval_id, start_date, end_date) @@ -635,7 +635,7 @@ v_interval_id time_intervals.interval_id%TYPE; begin -- get a new id; - select timespan_seq.nextval into v_timespan_id from dual; + select nextval(''timespan_sequence'') into v_timespan_id from dual; if new__copy_p then Index: openacs-4/packages/acs-events/sql/postgresql/timespan-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/timespan-drop.sql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/acs-events/sql/postgresql/timespan-drop.sql 13 Jul 2001 03:13:29 -0000 1.1 +++ openacs-4/packages/acs-events/sql/postgresql/timespan-drop.sql 8 Nov 2010 13:10:35 -0000 1.2 @@ -14,4 +14,3 @@ drop table time_intervals; drop sequence timespan_sequence; -drop view timespan_seq; Index: openacs-4/packages/acs-events/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-events/sql/postgresql/upgrade/upgrade-0.6d3-0.6d4.sql 8 Nov 2010 13:10:35 -0000 1.1 @@ -0,0 +1,149 @@ +-- +-- +-- +-- @author Victor Guerra (vguerra@gmail.com) +-- @creation-date 2010-11-05 +-- @cvs-id $Id: upgrade-0.6d3-0.6d4.sql,v 1.1 2010/11/08 13:10:35 victorg 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; + +create or replace function time_interval__new ( + -- + -- Creates a new time interval + -- + -- @author W. Scott Meeks + -- + -- @param start_date Sets this as start_date of new interval + -- @param end_date Sets this as end_date of new interval + -- + -- @return id of new time interval + -- + timestamptz, -- time_intervals.start_date%TYPE default null, + timestamptz -- time_intervals.end_date%TYPE default null +) +returns integer as ' -- time_intervals.interval_id%TYPE +declare + new__start_date alias for $1; -- default null, + new__end_date alias for $2; -- default null + 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'; + +create or replace function timespan__new ( + -- + -- Creates a new timespan (20.20.10) + -- given a time_interval + -- + -- JS: Allow user to specify whether the itme interval is to be copied or not + -- JS: This gives more flexibility of not making a copy instead of requiring + -- JS: the caller responsible for deleting the copy. + -- + -- @author W. Scott Meeks + -- + -- @param interval_id Id of interval to be included/copied in timespan, + -- @param copy_p If true, make another copy of the interval, + -- else simply include the interval in the timespan + -- + -- @return Id of new timespan + -- + integer, -- time_intervals.interval_id%TYPE + boolean +) +returns integer as ' -- timespans.timespan_id%TYPE +declare + new__interval_id alias for $1; + new__copy_p alias for $2; + 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'; + +create or replace function recurrence__new ( + -- + -- Creates a new recurrence + -- + -- @author W. Scott Meeks + -- + -- @param interval_type Sets interval_type of new recurrence + -- @param every_nth_interval Sets every_nth_interval of new recurrence + -- @param days_of_week Sets days_of_week of new recurrence + -- @param recur_until Sets recur_until of new recurrence + -- @param custom_func Sets name of custom recurrence function + -- + -- @return id of new recurrence + -- + varchar, -- recurrence_interval_types.interval_name%TYPE, + integer, -- recurrences.every_nth_interval%TYPE, + varchar, -- recurrences.days_of_week%TYPE default null, + timestamptz, -- recurrences.recur_until%TYPE default null, + varchar -- recurrences.custom_func%TYPE default null +) +returns integer as ' -- recurrences.recurrence_id%TYPE +declare + new__interval_name alias for $1; + new__every_nth_interval alias for $2; + new__days_of_week alias for $3; -- default null, + new__recur_until alias for $4; -- default null, + new__custom_func alias for $5; -- default null + 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';