-- -- tree_next_key/2 -- create or replace function tree_next_key( bit varying, integer ) returns varbit as $$ declare p_parent_key alias for $1; p_child_value alias for $2; v_child_value integer; begin -- Create a new child of the given key with a leaf key number one greater than -- the child value parameter. If the child value parameter is null, make the -- child the first child of the parent. if p_child_value is null then v_child_value := 0; else v_child_value := p_child_value + 1; end if; if p_parent_key is null then return int_to_tree_key(v_child_value); else return p_parent_key || int_to_tree_key(v_child_value); end if; end;$$ language plpgsql;