--
-- sp_folders_insert_tr/0
--
create or replace function sp_folders_insert_tr(
  
) returns trigger as $$

declare
        v_parent_sk     varbit default null;
        v_max_value     integer;
begin
	if new.parent_id is null then
            select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value
              from sp_folders
             where parent_id is null;
	else
	  select max(tree_leaf_key_to_int(tree_sortkey)) into v_max_value 
          from sp_folders 
          where parent_id = new.parent_id;

          select tree_sortkey into v_parent_sk 
          from sp_folders 
          where folder_id = new.parent_id;
	end if;
        new.tree_sortkey := tree_next_key(v_parent_sk, v_max_value);
        return new;
end;$$ language plpgsql;