--
-- url__insert_or_update/8
--
create or replace function url__insert_or_update(
character varying,
character varying,
character varying,
text,
text,
integer,
character varying,
integer
) returns int4 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;