--
-- workflow__add_role/4
--
create or replace function workflow__add_role(
character varying,
character varying,
character varying,
integer
) returns int4 as $$
declare
add_role__workflow_key alias for $1;
add_role__role_key alias for $2;
add_role__role_name alias for $3;
add_role__sort_order alias for $4;
v_sort_order integer;
begin
if add_role__sort_order is null then
select coalesce(max(sort_order)+1, 1)
into v_sort_order
from wf_roles
where workflow_key = add_role__workflow_key;
else
v_sort_order := add_role__sort_order;
end if;
insert into wf_roles (
workflow_key, role_key, role_name, sort_order
) values (
add_role__workflow_key, add_role__role_key, add_role__role_name, v_sort_order
);
return 0;
end;$$ language plpgsql;