--
-- content_item__edit_name/2
--
create or replace function content_item__edit_name(
integer,
character varying
) returns int4 as $$
declare
edit_name__item_id alias for $1;
edit_name__name alias for $2;
exists_id integer;
begin
select
item_id
into
exists_id
from
cr_items
where
name = edit_name__name
and
parent_id = (select
parent_id
from
cr_items
where
item_id = edit_name__item_id);
if NOT FOUND then
update cr_items
set name = edit_name__name
where item_id = edit_name__item_id;
else
if exists_id != edit_name__item_id then
raise EXCEPTION '-20000: An item with the name % already exists in this directory.', edit_name__name;
end if;
end if;
return 0;
end;$$ language plpgsql;