-- -- site_node__find_pattern/1 -- create or replace function site_node__find_pattern( integer ) returns int4 as $$ declare find_pattern__node_id alias for $1; v_pattern_p site_nodes.pattern_p%TYPE; v_parent_id site_nodes.node_id%TYPE; begin if find_pattern__node_id is null then -- raise no_data_found; raise exception 'NO DATA FOUND'; end if; select pattern_p, parent_id into v_pattern_p, v_parent_id from site_nodes where node_id = find_pattern__node_id; if v_pattern_p = 't' then return find_pattern__node_id; else return site_node__find_pattern(v_parent_id); end if; end;$$ language plpgsql;