--
-- site_node__new/8
--
create or replace function site_node__new(
integer,
integer,
character varying,
integer,
boolean,
boolean,
integer,
character varying
) returns int4 as $$
declare
new__node_id alias for $1; -- default null
new__parent_id alias for $2; -- default null
new__name alias for $3;
new__object_id alias for $4; -- default null
new__directory_p alias for $5;
new__pattern_p alias for $6; -- default 'f'
new__creation_user alias for $7; -- default null
new__creation_ip alias for $8; -- default null
v_node_id site_nodes.node_id%TYPE;
v_directory_p site_nodes.directory_p%TYPE;
begin
if new__parent_id is not null then
select directory_p into v_directory_p
from site_nodes
where node_id = new__parent_id;
if v_directory_p = 'f' then
raise EXCEPTION '-20000: Node % is not a directory', new__parent_id;
end if;
end if;
v_node_id := acs_object__new (
new__node_id,
'site_node',
now(),
new__creation_user,
new__creation_ip,
null,
't',
new__name,
new__object_id
);
insert into site_nodes
(node_id, parent_id, name, object_id, directory_p, pattern_p)
values
(v_node_id, new__parent_id, new__name, new__object_id,
new__directory_p, new__pattern_p);
return v_node_id;
end;$$ language plpgsql;