-- -- 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;