-- -- 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;