-- set serveroutput on drop function content_test__create(); drop function content_test__check1(); drop function content_test__check2(); drop function content_test__check3(); drop function content_test__check4(); drop function content_test__check5(); drop function content_test__put_line(text); drop function cast_char(boolean); drop function content_test__dump(); drop function content_test__get_val(varchar); drop function content_test__save_val(integer,varchar); drop table tst_ids; create table tst_ids ( id integer, name varchar(400) ); -- added select define_function_args('content_test__save_val','v_id,v_name'); -- -- procedure content_test__save_val/2 -- CREATE OR REPLACE FUNCTION content_test__save_val( v_id integer, v_name varchar ) RETURNS integer AS $$ DECLARE BEGIN insert into tst_ids (id,name) values (v_id, v_name); return null; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION content_test__get_val(varchar) RETURNS integer AS $$ BEGIN return id from tst_ids where name = $1; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__dump/0 -- CREATE OR REPLACE FUNCTION content_test__dump( ) RETURNS text AS $$ DECLARE v_rec record; v_str text default E'\n'; BEGIN for v_rec in select repeat(' ',(tree_level(tree_sortkey)*2 - 1)) || name as name, item_id, parent_id, tree_level(tree_sortkey) as level, tree_sortkey from cr_items order by tree_sortkey LOOP v_str := v_str || rpad(v_rec.name,40) || rpad(v_rec.item_id,6) || rpad(v_rec.parent_id,6) || rpad(v_rec.level,6) || rpad(v_rec.tree_sortkey,30) || E'\n'; end LOOP; return v_str; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION content_test__put_line(text) RETURNS integer AS $$ BEGIN raise NOTICE '%', $1; return null; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION cast_char(boolean) RETURNS char AS $$ BEGIN return case when $1 then 't'::char else 'f'::char end; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__create/0 -- CREATE OR REPLACE FUNCTION content_test__create( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN -- create folders and an item folder_id := content_folder__new('grandpa','Grandpa',NULL,-100); folder_b_id := content_folder__new('grandma','Grandma',NULL,-100); sub_folder_id := content_folder__new('pa','Pa',NULL,folder_id); sub_sub_folder_id := content_folder__new('me','Me',NULL,sub_folder_id); item_id := content_item__new('puppy',sub_sub_folder_id); simple_item_id := content_item__new( 'bunny', sub_sub_folder_id, 'Bugs Bunny', 'Simple (Revisionless) Item Test', 'Simple (Revisionless) Item Test Text' ); live_revision_id := content_revision__new( 'Live Revision of Puppy', 'Live Revision of Puppy Description', to_date('1999-08-12','YYYY-MM-DD'), 'text/html', 'Text for Live Revision of Puppy', item_id ); late_revision_id := content_revision__new( 'Latest Revision of Puppy', 'Latest Revision of Puppy Description', to_date('2001-09-22','YYYY-MM-DD'), 'text/html', 'Text for Latest Revision of Puppy', item_id ); item_template_id := content_template__new( 'Item Template' ); type_template_id := content_template__new( 'Type Template' ); def_type_template_id := content_template__new( 'Dumb Default Type Template' ); dum_template_id := content_template__new( 'Default Type Template' ); PERFORM content_test__save_val (folder_id,'folder_id'); PERFORM content_test__save_val (folder_b_id,'folder_b_id'); PERFORM content_test__save_val (sub_folder_id,'sub_folder_id'); PERFORM content_test__save_val (sub_sub_folder_id,'sub_sub_folder_id'); PERFORM content_test__save_val (item_id,'item_id'); PERFORM content_test__save_val (simple_item_id,'simple_item_id'); PERFORM content_test__save_val (live_revision_id,'live_revision_id'); PERFORM content_test__save_val (late_revision_id,'late_revision_id'); PERFORM content_test__save_val (item_template_id,'item_template_id'); PERFORM content_test__save_val (type_template_id,'type_template_id'); PERFORM content_test__save_val (def_type_template_id,'def_type_template_id'); PERFORM content_test__save_val (dum_template_id,'dum_template_id'); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('CREATING CONTENT FOLDERS AND ITEMS...'); PERFORM content_test__put_line('...all tests passed'); PERFORM content_test__put_line('Folder grandpa is ' || folder_id); PERFORM content_test__put_line('Folder grandma is ' || folder_b_id); PERFORM content_test__put_line('Sub folder pa is ' || sub_folder_id); PERFORM content_test__put_line('Sub sub folder me is ' || sub_sub_folder_id); PERFORM content_test__put_line('Added item puppy to sub sub folder me at ' || item_id); PERFORM content_test__put_line('Created simple item bunny to sub sub folder me at ' || simple_item_id); PERFORM content_test__put_line('Added a revision to puppy at ' || live_revision_id); PERFORM content_test__put_line('Added a revision to puppy at ' || late_revision_id); PERFORM content_test__put_line('Created Item Template at ' || item_template_id); PERFORM content_test__put_line('Created Type Template at ' || type_template_id); PERFORM content_test__put_line('Created Def Type Template at ' || def_type_template_id); PERFORM content_test__put_line('Created Dum Def Type Template at ' || dum_template_id); PERFORM content_test__put_line('-----------------------------------'); PERFORM content_test__put_line('FOLDERS AND EMPTY FOLDERS AND SUBFOLDERS'); PERFORM content_test__put_line('...all tests passed'); PERFORM content_test__put_line('Is folder ' || folder_id || ' empty? ' || cast_char(content_folder__is_empty(folder_id)) ); PERFORM content_test__put_line('Is folder ' || sub_sub_folder_id || ' empty? ' || cast_char(content_folder__is_empty(sub_sub_folder_id)) ); PERFORM content_test__put_line('Is folder ' || sub_folder_id || ' empty? ' || cast_char(content_folder__is_empty(sub_folder_id)) ); PERFORM content_test__put_line('Is folder ' || folder_b_id || ' empty? ' || cast_char(content_folder__is_empty(folder_b_id)) ); PERFORM content_test__put_line('Is folder ' || folder_id || '? ' || cast_char(content_folder__is_folder(folder_id)) ); PERFORM content_test__put_line('Is folder ' || item_id || '? ' || cast_char(content_folder__is_folder(item_id)) ); PERFORM content_test__put_line('Is ' || folder_id || ' a subfolder of ' || sub_folder_id || '? ' || cast_char(content_folder__is_sub_folder(sub_folder_id, folder_id )) ); PERFORM content_test__put_line('Is ' || sub_folder_id || ' a subfolder of ' || folder_id || '? ' || cast_char(content_folder__is_sub_folder(folder_id, sub_folder_id )) ); PERFORM content_test__put_line('Is ' || sub_sub_folder_id || ' a subfolder of ' || folder_id || '? ' || cast_char(content_folder__is_sub_folder(folder_id, sub_sub_folder_id )) ); PERFORM content_test__put_line('Is ' || sub_folder_id || ' a subfolder of ' || -1 || '? ' || cast_char(content_folder__is_sub_folder(-1, sub_folder_id )) ); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('LIVE AND LATEST REVISIONS...'); PERFORM content_test__put_line('...all tests passed'); PERFORM content_test__put_line('Get live_revision_id for item puppy ' || item_id || ' is ' || coalesce(content_item__get_live_revision(item_id)::varchar,'null') ); PERFORM content_item__set_live_revision(live_revision_id); PERFORM content_test__put_line('Set ' || live_revision_id || ' as the live revision for item puppy ' || item_id); PERFORM content_test__put_line('Get live_revision_id for item puppy ' || item_id || ' is ' || content_item__get_live_revision(item_id) ); PERFORM content_test__put_line('Get live_revision_id for item kitty ' || simple_item_id || ' is ' || coalesce(content_item__get_live_revision(simple_item_id)::varchar,'null') ); PERFORM content_test__put_line('Get late_revision_id for item puppy ' || item_id || ' is ' || content_item__get_latest_revision(item_id) ); PERFORM content_test__put_line('Get late_revision_id for item bunny ' || simple_item_id || ' is ' || content_item__get_latest_revision(simple_item_id) ); /* PERFORM content_item__register_template(item_id, item_template_id, 'public' ); */ PERFORM content_type__register_template('content_revision', type_template_id, 'public', 'f' ); PERFORM content_type__register_template('content_revision', def_type_template_id, 'admin', 'f' ); PERFORM content_type__register_template('content_revision', dum_template_id, 'admin', 't' ); PERFORM content_type__set_default_template('content_revision', def_type_template_id, 'admin' ); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('REGISTERING TEMPLATES TO ITEMS AND TYPES...'); PERFORM content_test__put_line('...all tests passed'); PERFORM content_test__put_line('Registered Item Template ' || item_template_id || ' to item puppy ' || item_id || ' with public context' ); PERFORM content_test__put_line('Registered Type Template ' || type_template_id || ' to content_revision ' || item_id || ' with public context' ); PERFORM content_test__put_line('Registered Default Type Template ' || def_type_template_id || ' to content_revision ' || item_id || ' with admin context' ); PERFORM content_test__put_line('Get template id for item puppy ' || item_id || ' and context public is ' || coalesce(content_item__get_template(item_id, 'public' )::varchar,'null') ); PERFORM content_test__put_line('Get template id for item puppy ' || item_id || ' and context admin is ' || content_item__get_template(item_id, 'admin' ) ); found_folder_id := content_item__get_id('grandpa/pa/me', -100, 'f'); PERFORM content_test__save_val (found_folder_id,'found_folder_id'); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('LOCATING CONTENT FOLDERS AND ITEMS...'); PERFORM content_test__put_line('...all tests passed!'); PERFORM content_test__put_line('Found me at grandpa/pa/me: ' || found_folder_id ); PERFORM content_test__put_line('Path for ' || found_folder_id || ' is ' || content_item__get_path(found_folder_id,null) ); PERFORM content_test__put_line('Path for puppy ' || item_id || ' is ' || content_item__get_path(item_id,null) ); PERFORM content_test__put_line('Path for puppy ' || item_id || ' from folder_id: ' || folder_id || ' is ' || content_item__get_path(item_id,folder_id) ); PERFORM content_test__put_line('Path for puppy ' || item_id || ' from sub_folder_id: ' || sub_folder_id || ' is ' || content_item__get_path(item_id, sub_folder_id ) ); PERFORM content_test__put_line('Path for puppy ' || item_id || ' from sub_sub_folder_id: ' || sub_sub_folder_id || ' is ' || content_item__get_path(item_id, sub_sub_folder_id ) ); PERFORM content_test__put_line('Get id of item with invalid path - shouldn''t return anything'); PERFORM content_test__put_line('Found item at ' || coalesce(content_item__get_id('grandpa/me', -200,'f')::varchar,'null') ); PERFORM content_test__put_line('Get id of item using subpath'); PERFORM content_test__put_line('Found item at ' || content_item__get_id('pa/me/puppy', folder_id, 'f' ) ); PERFORM content_test__put_line('This is the path to a folder from a subfolder'); PERFORM content_test__put_line('Path for ' || sub_folder_id || ' from sub_sub_folder_id: ' || sub_sub_folder_id || ' is ' || content_item__get_path(sub_folder_id, sub_sub_folder_id ) ); PERFORM content_test__put_line('This is a path to an item from a non-existent item'); PERFORM content_test__put_line('Path for ' || item_id || ' from nonexistent_id: ' || -300 || ' is ' || content_item__get_path(item_id,-300) ); PERFORM content_test__put_line('This is a path to an item from a non-related branch'); PERFORM content_test__put_line('Path for ' || item_id || ' from unrelated branch: ' || folder_b_id || ' is ' || content_item__get_path(item_id,folder_b_id) ); return null; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__check1/0 -- CREATE OR REPLACE FUNCTION content_test__check1( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN folder_id := content_test__get_val('folder_id'); sub_sub_folder_id := content_test__get_val('sub_sub_folder_id'); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('MOVING/RENAMING CONTENT FOLDERS...'); PERFORM content_test__put_line('...all tests passed'); PERFORM content_test__put_line('Moving me from under pa to under grandpa'); PERFORM content_item__move(sub_sub_folder_id, folder_id); return null; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__check2/0 -- CREATE OR REPLACE FUNCTION content_test__check2( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN item_id := content_test__get_val('item_id'); sub_sub_folder_id := content_test__get_val('sub_sub_folder_id'); sub_folder_id := content_test__get_val('sub_folder_id'); PERFORM content_test__put_line('Path for ' || item_id || ' is ' || content_item__get_path(item_id,null) ); -- PERFORM content_test__put_line('Moving grandpa to pa - this shouldn''t work'); -- PERFORM content_folder__move(folder_id, sub_folder_id); -- PERFORM content_test__put_line('Path for ' || item_id || ' is ' || -- content_item__get_path(item_id,null) -- ); PERFORM content_test__put_line('Renaming puppy to kitty...'); PERFORM content_item__edit_name(item_id, 'kitty'); PERFORM content_test__put_line('Renaming me to aunty...'); PERFORM content_folder__edit_name(sub_sub_folder_id, 'aunty',null,null); PERFORM content_test__put_line('Path for ' || item_id || ' is ' || content_item__get_path(item_id,null) ); PERFORM content_test__put_line('Renaming kitty to pa -- this should work'); PERFORM content_item__edit_name(item_id, 'pa'); PERFORM content_test__put_line('Path for ' || item_id || ' is ' || content_item__get_path(item_id,null) ); PERFORM content_test__put_line('-------------------------------------'); PERFORM content_test__put_line('SYMLINKS...'); PERFORM content_test__put_line('...all tests passed'); symlink_a_id := content_symlink__new('link_a', null, sub_sub_folder_id, sub_folder_id, null, now(), null, null ); PERFORM content_test__save_val (symlink_a_id,'symlink_a_id'); return null; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__check3/0 -- CREATE OR REPLACE FUNCTION content_test__check3( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN folder_id := content_test__get_val('folder_id'); folder_b_id := content_test__get_val('folder_b_id'); sub_folder_id := content_test__get_val('sub_folder_id'); sub_sub_folder_id := content_test__get_val('sub_sub_folder_id'); item_id := content_test__get_val('item_id'); simple_item_id := content_test__get_val('simple_item_id'); live_revision_id := content_test__get_val('live_revision_id'); late_revision_id := content_test__get_val('late_revision_id'); item_template_id := content_test__get_val('item_template_id'); type_template_id := content_test__get_val('type_template_id'); def_type_template_id := content_test__get_val('def_type_template_id'); dum_template_id := content_test__get_val('dum_template_id'); found_folder_id := content_test__get_val('found_folder_id'); symlink_a_id := content_test__get_val('symlink_a_id'); PERFORM content_test__put_line('Create a link in pa to aunty: Symlink is ' || symlink_a_id); PERFORM content_test__put_line('Is ' || symlink_a_id || ' a symlink?: ' || cast_char(content_symlink__is_symlink(symlink_a_id)) ); PERFORM content_test__put_line('Is ' || folder_id || ' a symlink?: ' || cast_char(content_symlink__is_symlink(folder_id)) ); PERFORM content_test__put_line('Path for symlink ' || symlink_a_id || ' is ' || content_item__get_path(symlink_a_id,null) ); PERFORM content_test__put_line('Resolving symlink ' || symlink_a_id || ' is ' || content_symlink__resolve(symlink_a_id) ); PERFORM content_test__put_line('Resolved path for symlink ' || symlink_a_id || ' is ' || content_item__get_path(content_symlink__resolve(symlink_a_id),null) ); PERFORM content_test__put_line('Path to item ' || item_id || ' from symlink ' || symlink_a_id || ' is ' || content_item__get_path(item_id, symlink_a_id) ); PERFORM content_test__put_line('Path to item ' || item_id || ' from aunty ' || sub_sub_folder_id || ' is ' || content_item__get_path(item_id, sub_sub_folder_id) ); PERFORM content_test__put_line('Path to pa ' || sub_folder_id || ' from symlink ' || symlink_a_id || ' is ' || content_item__get_path(sub_folder_id, symlink_a_id ) ); PERFORM content_test__put_line('Found item ' || item_id || ' at ' || content_item__get_id('/grandpa/aunty/pa',null,'f') ); PERFORM content_test__put_line('Found item ' || item_id || ' at ' || content_item__get_id('/grandpa/pa/link_a/pa',null,'f') ); PERFORM content_test__put_line('Found item ' || item_id || ' starting at aunty ' || sub_sub_folder_id || ' at ' || content_item__get_id('pa', sub_sub_folder_id, 'f' ) ); PERFORM content_test__put_line('Found item ' || item_id || ' starting at symlink ' || symlink_a_id || ' at ' || content_item__get_id('pa',symlink_a_id,'f') ); PERFORM content_test__put_line('Found item ' || item_id || ' starting at pa ' || sub_folder_id || ' at ' || content_item__get_id('link_a/bunny', sub_folder_id, 'f' ) ); PERFORM content_test__put_line('--------------------------------'); PERFORM content_test__put_line('Moving item ' || item_id || ' to grandma ' || folder_b_id ); PERFORM content_item__move(item_id,folder_b_id); return null; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__check4/0 -- CREATE OR REPLACE FUNCTION content_test__check4( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN item_id := content_test__get_val('item_id'); folder_b_id := content_test__get_val('folder_b_id'); sub_sub_folder_id := content_test__get_val('sub_sub_folder_id'); PERFORM content_test__put_line('Path for item ' || item_id || ' is ' || content_item__get_path(item_id,null) ); PERFORM content_test__put_line('Moving folder ' || folder_b_id || ' to aunty ' || sub_sub_folder_id ); PERFORM content_item__move(folder_b_id,sub_sub_folder_id); return null; END; $$ LANGUAGE plpgsql; -- -- procedure content_test__check5/0 -- CREATE OR REPLACE FUNCTION content_test__check5( ) RETURNS integer AS $$ DECLARE folder_id cr_folders.folder_id%TYPE; folder_b_id cr_folders.folder_id%TYPE; sub_folder_id cr_folders.folder_id%TYPE; sub_sub_folder_id cr_folders.folder_id%TYPE; item_id cr_items.item_id%TYPE; simple_item_id cr_items.item_id%TYPE; live_revision_id cr_revisions.revision_id%TYPE; late_revision_id cr_revisions.revision_id%TYPE; item_template_id cr_templates.template_id%TYPE; type_template_id cr_templates.template_id%TYPE; def_type_template_id cr_templates.template_id%TYPE; dum_template_id cr_templates.template_id%TYPE; symlink_a_id cr_symlinks.symlink_id%TYPE; symlink_b_id cr_symlinks.symlink_id%TYPE; found_folder_id cr_folders.folder_id%TYPE; BEGIN folder_id := content_test__get_val('folder_id'); folder_b_id := content_test__get_val('folder_b_id'); sub_folder_id := content_test__get_val('sub_folder_id'); sub_sub_folder_id := content_test__get_val('sub_sub_folder_id'); item_id := content_test__get_val('item_id'); simple_item_id := content_test__get_val('simple_item_id'); live_revision_id := content_test__get_val('live_revision_id'); late_revision_id := content_test__get_val('late_revision_id'); item_template_id := content_test__get_val('item_template_id'); type_template_id := content_test__get_val('type_template_id'); def_type_template_id := content_test__get_val('def_type_template_id'); dum_template_id := content_test__get_val('dum_template_id'); found_folder_id := content_test__get_val('found_folder_id'); PERFORM content_test__put_line('Path for item ' || item_id || ' is ' || content_item__get_path(item_id,null) ); PERFORM content_test__put_line('--------------------------------'); -- symlinks/revisions should be deleted automatically PERFORM content_template__delete(item_template_id); PERFORM content_template__delete(type_template_id); PERFORM content_template__delete(def_type_template_id); PERFORM content_template__delete(dum_template_id); PERFORM content_item__delete(simple_item_id); PERFORM content_item__delete(item_id); PERFORM content_folder__delete(folder_b_id); PERFORM content_folder__delete(sub_sub_folder_id); PERFORM content_folder__delete(sub_folder_id); PERFORM content_folder__delete(folder_id); return null; END; $$ LANGUAGE plpgsql; \t select content_test__create(); select content_test__dump(); select content_test__check1(); select content_test__check2(); select content_test__check3(); select content_test__check4(); select content_test__check5(); \t