--
-- workflow_case__execute_time_callback/4
--
create or replace function workflow_case__execute_time_callback(
character varying,
character varying,
integer,
character varying
) returns timestamptz as $$
declare
execute_time_callback__callback alias for $1;
execute_time_callback__custom_arg alias for $2;
execute_time_callback__case_id alias for $3;
execute_time_callback__transition_key alias for $4;
v_rec record;
v_str text;
begin
if execute_time_callback__callback = '' or execute_time_callback__callback is null then
raise EXCEPTION '-20000: There''s no time_callback function for the timed transition "%"', execute_time_callback__transition_key;
end if;
v_str := 'select ' || execute_time_callback__callback || '(' ||
execute_time_callback__case_id || ',' ||
quote_literal(execute_time_callback__transition_key) || ',' ||
coalesce(quote_literal(execute_time_callback__custom_arg),'null') || ') as trigger_time';
for v_rec in execute v_str
LOOP
return v_rec.trigger_time;
end LOOP;
return null;
end;$$ language plpgsql;