Index: openacs-4/packages/logger/sql/oracle/logger-packages-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/oracle/logger-packages-create.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/logger/sql/oracle/logger-packages-create.sql 5 Apr 2003 10:16:16 -0000 1.1 +++ openacs-4/packages/logger/sql/oracle/logger-packages-create.sql 6 Apr 2003 08:02:45 -0000 1.2 @@ -33,6 +33,31 @@ / show errors; +create or replace package logger_measurement +as + function new ( + measurement_id in logger_measurements.measurement_id%TYPE default null, + project_id in logger_measurements.project_id%TYPE, + variable_id in logger_measurements.variable_id%TYPE, + value in logger_measurements.value%TYPE, + time_stamp in logger_measurements.time_stamp%TYPE, + description in logger_measurements.description%TYPE default null, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return integer; + + procedure delete ( + measurement_id in integer + ); + + function name ( + measurement_id in integer + ) return varchar2; + +end logger_measurement; +/ +show errors; + ------------------------------------ -- Package body implementations ------------------------------------ @@ -113,3 +138,61 @@ end logger_project; / show errors; + +create or replace package body logger_measurement +as + function new ( + measurement_id in logger_measurements.measurement_id%TYPE default null, + project_id in logger_measurements.project_id%TYPE, + variable_id in logger_measurements.variable_id%TYPE, + value in logger_measurements.value%TYPE, + time_stamp in logger_measurements.time_stamp%TYPE, + description in logger_measurements.description%TYPE default null, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return integer + is + v_measurement_id integer; + begin + v_measurement_id := acs_object.new( + object_id => measurement_id, + object_type => 'logger_measurement', + context_id => project_id, + creation_ip => creation_ip, + creation_user => creation_user + ); + + insert into logger_measurements (measurement_id, project_id, variable_id, value, + time_stamp, description) + values (v_measurement_id, project_id, variable_id, value, time_stamp, description); + + return v_measurement_id; + + end new; + + procedure delete ( + measurement_id in integer + ) + is + begin + -- The row in the measurements table will cascade + acs_object.delete(measurement_id); + end delete; + + function name ( + measurement_id in integer + ) return varchar2 + is + v_name logger_projects.name%TYPE; + begin + -- TODO: Should we only return the say 20 first characters here? + select description into v_name + from logger_measurements + where measurement_id = logger_measurement.name.measurement_id; + + return v_name; + end name; + +end logger_measurement; +/ +show errors; Index: openacs-4/packages/logger/sql/oracle/logger-packages-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/oracle/logger-packages-drop.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/logger/sql/oracle/logger-packages-drop.sql 5 Apr 2003 10:16:16 -0000 1.1 +++ openacs-4/packages/logger/sql/oracle/logger-packages-drop.sql 6 Apr 2003 08:02:45 -0000 1.2 @@ -5,4 +5,6 @@ -- @author Peter Marklund (peter@collaboraid.biz) -- @creation-date 2003-03-28 +drop package logger_measurement; + drop package logger_project; Index: openacs-4/packages/logger/sql/oracle/logger-tables-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/oracle/logger-tables-create.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/logger/sql/oracle/logger-tables-create.sql 5 Apr 2003 13:10:13 -0000 1.2 +++ openacs-4/packages/logger/sql/oracle/logger-tables-create.sql 6 Apr 2003 08:02:45 -0000 1.3 @@ -34,6 +34,9 @@ but instead reference acs_objects. '; +-- By making projects acs objects we can use permissioning and also by +-- referencing acs objects we make any future transition to project objects in a +-- project management package easier. begin acs_object_type.create_type ( 'logger_project', @@ -162,7 +165,10 @@ create table logger_measurements ( measurement_id integer constraint logger_measurements_pk - primary key, + primary key + constraint logger_measurements_mid_fk + references acs_objects(object_id) + on delete cascade, project_id integer constraint logger_measurements_pid_fk references acs_objects(object_id) @@ -177,7 +183,8 @@ time_stamp date default sysdate constraint logger_measurements_ts_nn - not null + not null, + description varchar(4000) ); comment on table logger_measurements is ' @@ -192,3 +199,22 @@ and a value). Support for those remaining HR-XML use cases can be added on later without much difficulty. '; + +-- Measurments need to be acs objects if we are to categorize the with the categories +-- package +begin + acs_object_type.create_type ( + 'logger_measurement', + 'Logger measurement', + 'Logger measurements', + 'acs_object', + 'logger_measurements', + 'measurement_id', + null, + 'f', + null, + 'logger_measurement.name' + ); +end; +/ +show errors Index: openacs-4/packages/logger/sql/oracle/logger-tables-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/oracle/logger-tables-drop.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/logger/sql/oracle/logger-tables-drop.sql 5 Apr 2003 13:10:13 -0000 1.2 +++ openacs-4/packages/logger/sql/oracle/logger-tables-drop.sql 6 Apr 2003 08:02:45 -0000 1.3 @@ -10,6 +10,14 @@ drop table logger_measurements; +begin + acs_object_type.drop_type ( + 'logger_measurement' + ); +end; +/ +show errors + drop table logger_projections; drop sequence logger_projections_seq;