-- Fixing usage of sequences -- @author Victor Guerra (vguerra@wu.ac.at) -- @creation-date 2013-09-06 CREATE OR REPLACE FUNCTION url__insert_or_update (varchar,varchar,varchar,text,text,integer,varchar,integer) RETURNS integer AS ' DECLARE p_url_title ALIAS FOR $1; -- in bm_urls.url_title%TYPE, p_host_url ALIAS FOR $2; -- in bm_urls.host_url%TYPE default null, p_complete_url ALIAS FOR $3; -- in bm_urls.complete_url%TYPE, p_meta_keywords ALIAS FOR $4; -- in bm_urls.meta_keywords%TYPE default null, p_meta_description ALIAS FOR $5; -- in bm_urls.meta_description%TYPE default null, p_creation_user ALIAS FOR $6; -- in acs_objects.creation_user%TYPE default null, p_creation_ip ALIAS FOR $7; -- in acs_objects.creation_ip%TYPE default null, p_context_id ALIAS FOR $8; -- in acs_objects.context_id%TYPE default null v_n_complete_urls integer; v_return_id integer; v_new_url_id integer; BEGIN select count(*) into v_n_complete_urls from bm_urls where bm_urls.complete_url = p_complete_url; if v_n_complete_urls = 0 then select nextval(''t_acs_object_id_seq'') into v_new_url_id from dual; v_return_id := url__new( v_new_url_id, p_url_title, p_host_url, p_complete_url, null, null, p_creation_user, p_creation_ip, null ); return v_return_id; else select url_id into v_return_id from bm_urls where bm_urls.complete_url= p_complete_url; return v_return_id; end if; END; ' LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION bookmark__new_root_folder (integer, integer) RETURNS integer AS ' DECLARE p_package_id ALIAS FOR $1; -- in apm_packages.package_id%TYPE, p_user_id ALIAS FOR $2; -- in users.user_id%TYPE v_folder_id bm_bookmarks.bookmark_id%TYPE; v_bookmark_id bm_bookmarks.bookmark_id%TYPE; v_email parties.email%TYPE; v_local_title bm_bookmarks.local_title%TYPE; BEGIN SELECT nextval(''t_acs_object_id_seq'') INTO v_bookmark_id FROM dual; SELECT email INTO v_email FROM parties where party_id = p_user_id; v_local_title := '' Bookmarks Root Folder of '' || v_email; v_folder_id := bookmark__new ( v_bookmark_id, p_user_id, null, v_local_title, ''t'', p_package_id, null, null, null, null); -- bookmark_id => v_bookmark_id, -- owner_id => p_user_id, -- folder_p => t, -- local_title => Bookmarks Root Folder of || v_email, -- parent_id => new_root_folder.package_id -- set up default permissions -- The owner may administer the bookmarks -- Any other permissions will be inherited from the next higher -- package instance in the site hierarchy PERFORM acs_permission__grant_permission ( v_folder_id, p_user_id, ''admin''); -- object_id => v_folder_id, -- grantee_id => new_root_folder.user_id, -- privilege => admin RETURN v_folder_id; END; ' LANGUAGE 'plpgsql';