-- -- workflow_case__set_case_deadline/3 -- create or replace function workflow_case__set_case_deadline( integer, character varying, timestamp with time zone ) returns int4 as $$ declare set_case_deadline__case_id alias for $1; set_case_deadline__transition_key alias for $2; set_case_deadline__deadline alias for $3; v_workflow_key wf_workflows.workflow_key%TYPE; begin -- delete the current deadline row delete from wf_case_deadlines where case_id = set_case_deadline__case_id and transition_key = set_case_deadline__transition_key; if set_case_deadline__deadline is not null then -- get some info select workflow_key into v_workflow_key from wf_cases where case_id = set_case_deadline__case_id; -- insert new deadline row insert into wf_case_deadlines ( case_id, workflow_key, transition_key, deadline ) values ( set_case_deadline__case_id, v_workflow_key, set_case_deadline__transition_key, set_case_deadline__deadline ); end if; return 0; end;$$ language plpgsql;