Index: openacs-4/packages/notes/sql/postgresql/notes-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notes/sql/postgresql/notes-create.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/notes/sql/postgresql/notes-create.sql 3 May 2001 18:23:35 -0000 1.1 +++ openacs-4/packages/notes/sql/postgresql/notes-create.sql 9 Jul 2001 15:37:14 -0000 1.2 @@ -5,21 +5,23 @@ -- @creation-date 2000-10-22 -- @cvs-id $Id$ -- +-- openacs port: vinod kurup vkurup@massmed.org +-- create function inline_0 () returns integer as ' begin PERFORM acs_object_type__create_type ( - ''note'', - ''Note'', - ''Notes'', - ''acs_object'', - ''notes'', - ''note_id'', - null, - ''f'', - null, - null + ''note'', -- object_type + ''Note'', -- pretty_name + ''Notes'', -- pretty_plural + ''acs_object'', -- supertype + ''notes'', -- table_name + ''note_id'', -- id_column + null, -- package_name + ''f'', -- abstract_p + null, -- type_extension_table + null -- name_method ); return 0; @@ -29,52 +31,39 @@ drop function inline_0 (); ---begin --- acs_object_type.create_type ( --- supertype => 'acs_object', --- object_type => 'note', --- pretty_name => 'Note', --- pretty_plural => 'Notes', --- table_name => 'NOTES', --- id_column => 'NOTE_ID' --- ); ---end; ---/ ---show errors; - create function inline_1 () returns integer as ' begin PERFORM acs_attribute__create_attribute ( - ''note'', - ''TITLE'', - ''string'', - ''Title'', - ''Titles'', - null, - null, - null, - 1, - 1, - null, - ''type_specific'', - ''f'' + ''note'', -- object_type + ''TITLE'', -- attribute_name + ''string'', -- datatype + ''Title'', -- pretty_name + ''Titles'', -- pretty_plural + null, -- table_name + null, -- column_name + null, -- default_value + 1, -- min_n_values + 1, -- max_n_values + null, -- sort_order + ''type_specific'', -- storage + ''f'' -- static_p ); PERFORM acs_attribute__create_attribute ( - ''note'', - ''BODY'', - ''string'', - ''Body'', - ''Bodies'', - null, - null, - null, - 1, - 1, - null, - ''type_specific'', - ''f'' + ''note'', -- object_type + ''BODY'', -- attribute_name + ''string'', -- datatype + ''Body'', -- pretty_name + ''Bodies'', -- pretty_plural + null, -- table_name + null, -- column_name + null, -- default_value + 1, -- min_n_values + 1, -- max_n_values + null, -- sort_order + ''type_specific'', -- storage + ''f'' -- static_p ); return 0; @@ -84,67 +73,52 @@ drop function inline_1 (); ---declare --- attr_id acs_attributes.attribute_id%TYPE; --- ---begin --- attr_id := acs_attribute.create_attribute ( --- object_type => 'note', --- attribute_name => 'TITLE', --- pretty_name => 'Title', --- pretty_plural => 'Titles', --- datatype => 'string' --- ); --- --- attr_id := acs_attribute.create_attribute ( --- object_type => 'note', --- attribute_name => 'BODY', --- pretty_name => 'Body', --- pretty_plural => 'Bodies', --- datatype => 'string' --- ); ---end; ---/ ---show errors; - create table notes ( - note_id integer references acs_objects(object_id) primary key, - owner_id integer references users(user_id), - title varchar(255) not null, + note_id integer + constraint notes_note_id_fk + references acs_objects(object_id) + constraint notes_note_id_pk + primary key, + owner_id integer + constraint notes_owner_id_fk + references users(user_id), + title varchar(255) + constraint notes_title_nn + not null, body varchar(1024) ); create function note__new (integer,integer,varchar,varchar,varchar,timestamp,integer,varchar,integer) returns integer as ' declare - new__note_id alias for $1; -- default null - new__owner_id alias for $2; -- default null - new__title alias for $3; - new__body alias for $4; - new__object_type alias for $5; -- default ''note'' - new__creation_date alias for $6; -- default now() - new__creation_user alias for $7; -- default null - new__creation_ip alias for $8; -- default null - new__context_id alias for $9; -- default null - v_note_id notes.note_id%TYPE; + p_note_id alias for $1; -- default null + p_owner_id alias for $2; -- default null + p_title alias for $3; + p_body alias for $4; + p_object_type alias for $5; -- default ''note'' + p_creation_date alias for $6; -- default now() + p_creation_user alias for $7; -- default null + p_creation_ip alias for $8; -- default null + p_context_id alias for $9; -- default null + v_note_id notes.note_id%TYPE; begin v_note_id := acs_object__new ( - new__note_id, - new__object_type, - new__creation_date, - new__creation_user, - new__creation_ip, - new__context_id + p_note_id, + p_object_type, + p_creation_date, + p_creation_user, + p_creation_ip, + p_context_id ); insert into notes (note_id, owner_id, title, body) values - (v_note_id, new__owner_id, new__title, new__body); + (v_note_id, p_owner_id, p_title, p_body); PERFORM acs_permission__grant_permission( v_note_id, - new__owner_id, + p_owner_id, ''admin'' ); @@ -155,87 +129,18 @@ create function note__delete (integer) returns integer as ' declare - delete__note_id alias for $1; + p_note_id alias for $1; begin delete from acs_permissions - where object_id = delete__note_id; + where object_id = p_note_id; delete from notes - where note_id = delete__note_id; + where note_id = p_note_id; raise NOTICE ''Deleting note...''; - PERFORM acs_object__delete(delete__note_id); + PERFORM acs_object__delete(p_note_id); return 0; end;' language 'plpgsql'; ---create or replace package note ---as --- function new ( --- note_id in notes.note_id%TYPE default null, --- owner_id in notes.owner_id%TYPE default null, --- title in notes.title%TYPE, --- body in notes.body%TYPE, --- object_type in acs_object_types.object_type%TYPE default 'note', --- creation_date in acs_objects.creation_date%TYPE default sysdate, --- creation_user in acs_objects.creation_user%TYPE default null, --- creation_ip in acs_objects.creation_ip%TYPE default null, --- context_id in acs_objects.context_id%TYPE default null --- ) return notes.note_id%TYPE; --- --- procedure delete ( --- note_id in notes.note_id%TYPE --- ); ---end note; ---/ ---show errors --- ---create or replace package body note ---as --- function new ( --- note_id in notes.note_id%TYPE default null, --- owner_id in notes.owner_id%TYPE default null, --- title in notes.title%TYPE, --- body in notes.body%TYPE, --- object_type in acs_object_types.object_type%TYPE default 'note', --- creation_date in acs_objects.creation_date%TYPE default sysdate, --- creation_user in acs_objects.creation_user%TYPE default null, --- creation_ip in acs_objects.creation_ip%TYPE default null, --- context_id in acs_objects.context_id%TYPE default null --- ) return notes.note_id%TYPE --- is --- v_note_id integer; --- begin --- v_note_id := acs_object.new ( --- object_id => note_id, --- object_type => object_type, --- creation_date => creation_date, --- creation_user => creation_user, --- creation_ip => creation_ip, --- context_id => context_id --- ); --- --- insert into notes --- (note_id, owner_id, title, body) --- values --- (v_note_id, owner_id, title, body); --- --- return v_note_id; --- end new; --- --- procedure delete ( --- note_id in notes.note_id%TYPE --- ) --- is --- begin --- delete from notes --- where note_id = note.delete.note_id; --- --- acs_object.delete(note_id); --- end delete; --- ---end note; ---/ ---show errors; -