--
-- workflow_case__ensure_task_in_state/2
--
create or replace function workflow_case__ensure_task_in_state(
  integer,
  character varying
) returns int4 as $$

declare
  ensure_task_in_state__task_id         alias for $1;  
  ensure_task_in_state__state           alias for $2;  
  v_count                               integer;        
begin
        select case when count(*) = 0 then 0 else 1 end into v_count
        from   wf_tasks 
        where  task_id = ensure_task_in_state__task_id
        and    state = ensure_task_in_state__state;
    
        if v_count != 1 then
            raise EXCEPTION '-20000: The task %  is not in state "%"', ensure_task_in_state__task_id, ensure_task_in_state__state;
        end if;
        
        return 0; 
end;$$ language plpgsql;