Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql 30 Mar 2001 03:03:08 -0000 1.6 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-create.sql 30 Mar 2001 05:31:33 -0000 1.7 @@ -203,7 +203,7 @@ create index cr_items_by_parent_id on cr_items(parent_id); -create function cr_items_insert_tr () returns opaque as ' +create function cr_items_tree_insert_tr () returns opaque as ' declare v_parent_sk varchar; max_key varchar; @@ -231,11 +231,11 @@ end;' language 'plpgsql'; -create trigger cr_items_insert_tr before insert +create trigger cr_items_tree_insert_tr before insert on cr_items for each row -execute procedure cr_items_insert_tr (); +execute procedure cr_items_tree_insert_tr (); -create function cr_items_update_tr () returns opaque as ' +create function cr_items_tree_update_tr () returns opaque as ' declare v_parent_sk varchar; max_key varchar; @@ -291,10 +291,10 @@ end;' language 'plpgsql'; -create trigger cr_items_update_tr after update +create trigger cr_items_tree_update_tr after update on cr_items for each row -execute procedure cr_items_update_tr (); +execute procedure cr_items_tree_update_tr (); comment on table cr_items is ' Each content item has a row in this table, as well as a row in @@ -514,7 +514,7 @@ One-row table to track job ID of scheduled release update. '; -insert into cr_scheduled_release_job values (NULL, sysdate); +insert into cr_scheduled_release_job values (NULL, now()); -------------------------------------------------------------- -- CONTENT FOLDERS @@ -722,7 +722,7 @@ ); -create function cr_keywords_insert_tr () returns opaque as ' +create function cr_keywords_tree_insert_tr () returns opaque as ' declare v_parent_sk varchar; max_key varchar; @@ -750,11 +750,11 @@ end;' language 'plpgsql'; -create trigger cr_keywords_insert_tr before insert +create trigger cr_keywords_tree_insert_tr before insert on cr_keywords for each row -execute procedure cr_keywords_insert_tr (); +execute procedure cr_keywords_tree_insert_tr (); -create function cr_keywords_update_tr () returns opaque as ' +create function cr_keywords_tree_update_tr () returns opaque as ' declare v_parent_sk varchar; max_key varchar; @@ -810,10 +810,10 @@ end;' language 'plpgsql'; -create trigger cr_keywords_update_tr after update +create trigger cr_keywords_tree_update_tr after update on cr_keywords for each row -execute procedure cr_keywords_update_tr (); +execute procedure cr_keywords_tree_update_tr (); comment on table cr_keywords is ' Stores a subject taxonomy for classifying content items, analogous @@ -949,7 +949,7 @@ ''Site pages go here'', 0, null, - content_item__get_root_folder(), + content_item__get_root_folder(null), now(), null, null @@ -1014,3 +1014,4 @@ -- show errors + Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-drop.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-drop.sql 27 Mar 2001 02:02:31 -0000 1.1 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-drop.sql 30 Mar 2001 05:31:33 -0000 1.2 @@ -43,7 +43,7 @@ -- the root folder for content items - v_id := content_item__get_root_folder(); + v_id := content_item__get_root_folder(null); PERFORM content_folder__unregister_content_type( v_id, Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-folder.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-folder.sql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-folder.sql 30 Mar 2001 03:03:08 -0000 1.6 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-folder.sql 30 Mar 2001 05:31:33 -0000 1.7 @@ -37,20 +37,22 @@ -- parent_id = 0 means that this is a mount point if new__parent_id != 0 and - content_folder__is_registered(new__parent_id,''content_folder'') = ''f'' then + content_folder__is_registered(new__parent_id,''content_folder'',''f'') = ''f'' then raise EXCEPTION ''-20000: This folder does not allow subfolders to be created''; + return null; + else v_folder_id := content_item__new( - name, - parent_id, - folder_id, + new__name, + new__parent_id, + new__folder_id, null, - creation_date, - creation_user, + new__creation_date, + new__creation_user, v_context_id, - creation_ip, + new__creation_ip, ''content_folder'', ''content_folder'', null, @@ -86,7 +88,8 @@ return v_folder_id; end if; - + + return null; end;' language 'plpgsql'; @@ -198,7 +201,7 @@ raise ''-20000: content_folder.move - Not valid folder(s)''; end if; - if move__folder_id = content_item__get_root_folder() or + if move__folder_id = content_item__get_root_folder(null) or move__folder_id = content_template__get_root_folder() then raise EXCEPTION ''-20000: content_folder.move - Cannot move root folder''; end if; @@ -211,7 +214,7 @@ raise EXCEPTION ''-20000: content_folder.move - Destination folder is subfolder''; end if; - if content_folder__is_registered(move__target_folder_id,''content_folder'') != ''t'' then + if content_folder__is_registered(move__target_folder_id,''content_folder'',''f'') != ''t'' then raise EXCEPTION ''-20000: content_folder.move - Destination folder does not allow subfolders''; end if; @@ -277,7 +280,7 @@ where item_id = copy__folder_id; - if copy__folder_id = content_item__get_root_folder() + if copy__folder_id = content_item__get_root_folder(null) or copy__folder_id = content_template__get_root_folder() or copy__target_folder_id = copy__folder_id or v_current_folder_id = copy__target_folder_id then @@ -381,7 +384,7 @@ v_rec record; begin - if is_sub_folder__folder_id = content_item__get_root_folder() or + if is_sub_folder__folder_id = content_item__get_root_folder(null) or is_sub_folder__folder_id = content_template__get_root_folder() then v_sub_folder_p := ''t''; Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-image.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-image.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-image.sql 27 Mar 2001 02:02:31 -0000 1.1 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-image.sql 30 Mar 2001 05:31:33 -0000 1.2 @@ -36,22 +36,22 @@ ); select content_type__create_attribute ( - content_type => 'image', - attribute_name => 'width', - datatype => 'integer', - pretty_name => 'Width', - pretty_plural => 'Widths', + 'image', + 'width', + 'integer', + 'Width', + 'Widths', null, null, 'text' ); select content_type__create_attribute ( - content_type => 'image', - attribute_name => 'height', - datatype => 'integer', - pretty_name => 'Height', - pretty_plural => 'Heights', + 'image', + 'height', + 'integer', + 'Height', + 'Heights', null, null, 'text' Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql 29 Mar 2001 05:38:45 -0000 1.4 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-item.sql 30 Mar 2001 05:31:33 -0000 1.5 @@ -126,7 +126,7 @@ content_folder__is_registered( v_parent_id, new__content_type, ''f'') = ''f'' then - raise EXCEPTION ''-20000: This item\\\\'s content type % is not registered to this folder %'', new__content_type, v_parent_id; + raise EXCEPTION ''-20000: This item\\\'s content type % is not registered to this folder %'', new__content_type, v_parent_id; end if; else if v_parent_id != 0 then @@ -141,7 +141,7 @@ if content_item__is_subclass(v_parent_type, ''content_item'') = ''t'' and content_item__is_valid_child(v_parent_id, new__content_type) = ''f'' then - raise EXCEPTION ''-20000: This item\\\\'s content type % is not allowed in this container %'', new__content_type, v_parent_id); + raise EXCEPTION ''-20000: This item\\\'s content type % is not allowed in this container %'', new__content_type, v_parent_id; end if; end if; end if; @@ -153,8 +153,8 @@ new__item_subtype, new__creation_date, new__creation_user, - new__creation_ip - v_context_id, + new__creation_ip, + v_context_id ); -- Turn off security inheritance if there is no security context @@ -216,13 +216,13 @@ new__description, now(), new__mime_type, - new__nls_language + new__nls_language, new__data, v_item_id, null, new__creation_date, new__creation_user, - new__creation_ip, + new__creation_ip ); else if new__title is not null or @@ -1196,7 +1196,7 @@ if content_folder__is_registered(move__target_folder_id, - content_item__get_content_type(move__item_id)) = ''t'' and + content_item__get_content_type(move__item_id),''f'') = ''t'' and content_folder__is_registered(move__target_folder_id, content_item__get_content_type(content_symlink__resolve(move__item_id)),''f'') = ''t'' then Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 30 Mar 2001 03:03:08 -0000 1.5 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-revision.sql 30 Mar 2001 05:31:33 -0000 1.6 @@ -42,7 +42,7 @@ new__item_id ); - -- binary data is stored in cr_revisions using Don's lob hack. + -- binary data is stored in cr_revisions using Dons lob hack. -- This routine only inserts the lob id. It would need to be followed by -- ns_pg blob_dml from within a tcl script to actually insert the lob data. @@ -480,8 +480,8 @@ -- b blob; -- c text; begin - -- FIXME: I can't find an instance in the 4.2 beta code where this - -- is used so I'm not worrying about porting it for now. + -- FIXME: I cannot find an instance in the 4.2 beta code where this + -- is used so I am not worrying about porting it for now. -- DCW - 2001-03-28. raise EXCEPTION ''not implemented content_revision.to_temporary_clob''; Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-schedule.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-schedule.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-schedule.sql 28 Mar 2001 02:15:10 -0000 1.2 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-schedule.sql 30 Mar 2001 05:31:33 -0000 1.3 @@ -142,7 +142,7 @@ return 0; end;' language 'plpgsql'; -select inline_1 (); +-- select inline_1 (); drop function inline_1 (); Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-symlink.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-symlink.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-symlink.sql 28 Mar 2001 02:15:10 -0000 1.2 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-symlink.sql 30 Mar 2001 05:31:33 -0000 1.3 @@ -41,13 +41,13 @@ end if; -- 3) check that parent folder supports symlinks - if content_folder__is_registered(new__parent_id,''content_symlink'') = ''f'' then + if content_folder__is_registered(new__parent_id,''content_symlink'',''f'') = ''f'' then raise EXCEPTION ''-20000: This folder does not allow symlinks to be created''; end if; -- 4) check that the content folder supports the target item''s content type if content_folder__is_registered( - parent_id,content_item__get_content_type(new__target_id)) = ''f'' then + parent_id,content_item__get_content_type(new__target_id),''f'') = ''f'' then raise EXCEPTION ''-20000: This folder does not allow symlinks to items of type % to be created'', '', content_item__get_content_type(new__target_id); end if; @@ -183,9 +183,9 @@ if content_folder__is_registered(copy__target_folder_id, - ''content_symlink'') = ''t'' then + ''content_symlink'',''f'') = ''t'' then if content_folder__is_registered(copy__target_folder_id, - content_item__get_content_type(content_symlink__resolve(copy__symlink_id))) = ''t'' then + content_item__get_content_type(content_symlink__resolve(copy__symlink_id)),''f'') = ''t'' then v_symlink_id := content_symlink__new( v_name, Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-template.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-template.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-template.sql 25 Mar 2001 22:21:18 -0000 1.1 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-template.sql 30 Mar 2001 05:31:33 -0000 1.2 @@ -13,6 +13,11 @@ create view content_template_globals as select -200 as c_root_folder_id; +create function content_template__get_root_folder() returns integer as ' +begin + return content_template_globals.c_root_folder_id; +end;' language 'plpgsql'; + -- create or replace package body content_template -- function new create function content_template__new (varchar,integer,integer,timestamp,integer,varchar) @@ -36,7 +41,7 @@ -- make sure we''re allowed to create a template in this folder if content_folder__is_folder(new__parent_id) = ''t'' and - content_folder__is_registered(new__parent_id,''content_template'') = ''f'' then + content_folder__is_registered(new__parent_id,''content_template'',''f'') = ''f'' then raise EXCEPTION ''-20000: ''This folder does not allow templates to be created''; Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql 30 Mar 2001 03:03:08 -0000 1.7 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-type.sql 30 Mar 2001 05:31:33 -0000 1.8 @@ -70,8 +70,8 @@ select table_name into v_supertype_table from acs_object_types where object_type = create_type__supertype; - execute ''create table '' || table_name || '' ('' || - id_column || '' integer primary key references '' || + execute ''create table '' || create_type__table_name || '' ('' || + create_type__id_column || '' integer primary key references '' || v_supertype_table || '')''; end if; @@ -88,6 +88,8 @@ create_type__name_method ); + raise notice ''table = %, col = %, super = %'', create_type__table_name,create_type__id_column, table_exists; + PERFORM content_type__refresh_view(create_type__content_type); return 0; @@ -204,7 +206,7 @@ select count(*) > 0 into v_column_exists from pg_class c, pg_attribute a - where c.relname = v_table_name + where c.relname::varchar = v_table_name and c.oid = a.attrelid and a.attname = lower(create_attribute__attribute_name); @@ -595,9 +597,9 @@ returns integer as ' declare refresh_view__content_type alias for $1; - cols varchar; - tabs varchar; - joins varchar; + cols varchar default ''''; + tabs varchar default ''''; + joins varchar default ''''; v_table_name varchar; join_rec record; begin @@ -644,16 +646,24 @@ -- create the input view (includes content columns) + if table_exists(v_table_name || ''i'') then + execute ''drop view '' || v_table_name || ''i''; + end if; + execute ''create view '' || v_table_name || ''i as select acs_objects.*, cr.revision_id, cr.title, cr.item_id, - content_revision__get_content(cr.revision_id) as data, cr_text.text, + content_revision__get_content(cr.revision_id) as data, cr_text.text_data as text, cr.description, cr.publish_date, cr.mime_type, cr.nls_language'' || cols || '' from acs_objects, cr_revisions cr, cr_text'' || tabs || '' where acs_objects.object_id = cr.revision_id '' || joins; -- create the output view (excludes content columns to enable SELECT *) + if table_exists(v_table_name || ''x'') then + execute ''drop view '' || v_table_name || ''x''; + end if; + execute ''create view '' || v_table_name || ''x as select acs_objects.*, cr.revision_id, cr.title, cr.item_id, cr.description, cr.publish_date, cr.mime_type, cr.nls_language, @@ -663,7 +673,7 @@ '' where acs_objects.object_id = cr.revision_id and cr.item_id = i.item_id'' || joins; - PERFORM content_type__refresh_trigger(refresh_view__content_type); + -- PERFORM content_type__refresh_trigger(refresh_view__content_type); -- exception -- when others then Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-update.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-update.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-update.sql 29 Mar 2001 02:46:30 -0000 1.4 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-update.sql 30 Mar 2001 05:31:33 -0000 1.5 @@ -26,7 +26,7 @@ return 0; end;' language 'plpgsql'; -select inline_0 (); +-- select inline_0 (); drop function inline_0 (); @@ -206,7 +206,7 @@ return null; end;' language 'plpgsql'; -select inline_1 (); +-- select inline_1 (); drop function inline_1 (); Index: openacs-4/packages/acs-content-repository/sql/postgresql/content-util.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/content-util.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-content-repository/sql/postgresql/content-util.sql 28 Mar 2001 02:15:10 -0000 1.2 +++ openacs-4/packages/acs-content-repository/sql/postgresql/content-util.sql 30 Mar 2001 05:31:33 -0000 1.3 @@ -28,8 +28,6 @@ end;' language 'plpgsql'; -end table_exists; - -- show errors -- or replace function Index: openacs-4/packages/acs-content-repository/sql/postgresql/packages-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/packages-create.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-content-repository/sql/postgresql/packages-create.sql 25 Mar 2001 02:59:13 -0000 1.1 +++ openacs-4/packages/acs-content-repository/sql/postgresql/packages-create.sql 30 Mar 2001 05:31:33 -0000 1.2 @@ -1,6 +1,6 @@ -- Ensure that the data model is up-to-date before compiling packages -\i content-util.sql +-- \i content-util.sql \i content-update.sql -- create or replace package content_type AUTHID CURRENT_USER as Index: openacs-4/packages/acs-content-repository/sql/postgresql/types-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/types-create.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-content-repository/sql/postgresql/types-create.sql 30 Mar 2001 03:03:09 -0000 1.2 +++ openacs-4/packages/acs-content-repository/sql/postgresql/types-create.sql 30 Mar 2001 05:31:33 -0000 1.3 @@ -93,7 +93,7 @@ null, 'f', null, - name_method => 'content_folder.get_label' + 'content_folder.get_label' ); select acs_attribute__create_attribute ( @@ -145,7 +145,7 @@ null, 'f', null, - name_method => 'acs_object.default_name' + 'acs_object.default_name' ); select acs_attribute__create_attribute ( @@ -200,7 +200,7 @@ null, 'f', null, - name_method => 'acs_object.default_name' + 'acs_object.default_name' ); select acs_attribute__create_attribute ( @@ -235,7 +235,7 @@ null, 'f', null, - name_method => 'acs_object.default_name' + 'acs_object.default_name' ); select acs_attribute__create_attribute ( @@ -317,7 +317,7 @@ 'Basic Item', 'Basic Items', 'cr_revisions', - 'revision_id' + 'revision_id', null ); @@ -372,6 +372,7 @@ 'Language', 'Language', null, + null, 'text' );