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

declare
  delete_role__workflow_key		alias for $1;
  delete_role__role_key			alias for $2;
begin
        /* First, remove all references to this role from transitions */
        update wf_transitions
	   set role_key = null
         where workflow_key = delete_role__workflow_key
	   and role_key = delete_role__role_key;

        delete from wf_roles
        where  workflow_key = delete_role__workflow_key
        and    role_key = delete_role__role_key;

	return 0;
end;$$ language plpgsql;