sql/functions/pgq.finish_batch.sql
create or replace function pgq.finish_batch(
x_batch_id bigint)
returns integer as $$
-- ----------------------------------------------------------------------
-- Function: pgq.finish_batch(1)
--
-- Closes a batch. No more operations can be done with events
-- of this batch.
--
-- Parameters:
-- x_batch_id - id of batch.
--
-- Returns:
-- 1 if batch was found, 0 otherwise.
-- Calls:
-- None
-- Tables directly manipulated:
-- update - pgq.subscription
-- ----------------------------------------------------------------------
begin
update pgq.subscription
set sub_active = now(),
sub_last_tick = sub_next_tick,
sub_next_tick = null,
sub_batch = null
where sub_batch = x_batch_id;
if not found then
raise warning 'finish_batch: batch % not found', x_batch_id;
return 0;
end if;
return 1;
end;
$$ language plpgsql security definer;