--
-- content_keyword__item_assign/5
--
create or replace function content_keyword__item_assign(
integer,
integer,
integer,
integer,
character varying
) returns int4 as $$
declare
item_assign__item_id alias for $1;
item_assign__keyword_id alias for $2;
item_assign__context_id alias for $3; -- default null
item_assign__creation_user alias for $4; -- default null
item_assign__creation_ip alias for $5; -- default null
exists_p boolean;
begin
-- Do nothing if the keyword is assigned already
select count(*) > 0 into exists_p from dual
where exists (select 1 from cr_item_keyword_map
where item_id = item_assign__item_id
and keyword_id = item_assign__keyword_id);
if NOT exists_p then
insert into cr_item_keyword_map (
item_id, keyword_id
) values (
item_assign__item_id, item_assign__keyword_id
);
end if;
return 0;
end;$$ language plpgsql;