--
-- workflow_case__execute_transition_callback/4
--
create or replace function workflow_case__execute_transition_callback(
  character varying,
  character varying,
  integer,
  character varying
) returns int4 as $$

declare
  execute_transition_callback__callback               alias for $1;  
  execute_transition_callback__custom_arg             alias for $2;  
  execute_transition_callback__case_id                alias for $3;  
  execute_transition_callback__transition_key         alias for $4;  
  v_str                                               text;
begin
        if execute_transition_callback__callback != '' and execute_transition_callback__callback is not null then 
            v_str := 'select ' || execute_transition_callback__callback
            || '(' || execute_transition_callback__case_id || ',' || 
            quote_literal(execute_transition_callback__transition_key) || ',' || 
            coalesce(quote_literal(execute_transition_callback__custom_arg),'null') || ')';
            execute v_str;
        end if;

        return 0; 
end;$$ language plpgsql;