create or replace function content_item__edit_name (integer,varchar)
returns integer 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';
create or replace function content_folder__edit_name (integer,varchar,varchar,varchar)
returns integer as '
declare
edit_name__folder_id alias for $1;
edit_name__name alias for $2; -- default null
edit_name__label alias for $3; -- default null
edit_name__description alias for $4; -- default null
v_name_already_exists_p integer;
begin
if edit_name__name is not null and edit_name__name != '''' then
PERFORM content_item__edit_name(edit_name__folder_id, edit_name__name);
end if;
if edit_name__label is not null and edit_name__label != '''' and
edit_name__description is not null and edit_name__description != '''' then
update cr_folders
set label = edit_name__label,
description = edit_name__description
where folder_id = edit_name__folder_id;
else if(edit_name__label is not null and edit_name__label != '''') and
(edit_name__description is null or edit_name__description = '''') then
update cr_folders
set label = edit_name__label
where folder_id = edit_name__folder_id;
end if; end if;
return 0;
end;' language 'plpgsql';