text: /*
   *  Delete jobs from job_log and job_detail table older than a given interval.
   *  Also logs this job purging task.
   */
  CREATE FUNCTION job_log_clear(p_interval interval) RETURNS void
      LANGUAGE plpgsql
      AS $$
  DECLARE
      
      v_boundary      timestamptz;
      v_job_id        bigint;
      v_rowcount      bigint;
      v_step_id       bigint;
  
  BEGIN
  
  v_boundary := now() - p_interval;
  v_job_id := @extschema@.add_job('Purging pg_jobmon job logs older than '|| v_boundary);
  v_step_id := @extschema@.add_step(v_job_id,'Purging pg_jobmon job logs older than '|| v_boundary);
  
  DELETE FROM @extschema@.job_log WHERE start_time <= v_boundary;
  
  GET DIAGNOSTICS v_rowcount = ROW_COUNT;
  IF v_rowcount > 0 THEN
      RAISE NOTICE 'Deleted % rows from job_log and associated rows in job_detail', v_rowcount;
      PERFORM @extschema@.update_step(v_step_id, 'OK', 'Deleted '||v_rowcount||' rows from job_log and associated rows in job_detail');
  ELSE
      RAISE NOTICE 'No jobs logged older than %', v_boundary;
      PERFORM @extschema@.update_step(v_step_id, 'OK', 'No jobs logged older than '|| v_boundary);
  END IF;
  PERFORM @extschema@.close_job(v_job_id);
  RETURN;
  
  EXCEPTION
      WHEN OTHERS THEN
          IF v_step_id IS NULL THEN
              v_step_id := @extschema@.add_step(v_job_id, 'EXCEPTION before first step logged');
          END IF;
          PERFORM @extschema@.update_step(v_step_id, 'CRITICAL', 'ERROR: '||coalesce(SQLERRM,'unknown'));
          PERFORM @extschema@.fail_job(v_job_id);
          RAISE EXCEPTION '%', SQLERRM;
  END
  $$;
  