From 343213566f06f13dc1e440d645757135ee465f2e Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 23 Apr 2008 15:01:09 +0000 Subject: [PATCH] sql/pgq: allow external ticker to specify tick_time --- sql/pgq/functions/pgq.ticker.sql | 33 ++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/sql/pgq/functions/pgq.ticker.sql b/sql/pgq/functions/pgq.ticker.sql index 9489d195..598f43ec 100644 --- a/sql/pgq/functions/pgq.ticker.sql +++ b/sql/pgq/functions/pgq.ticker.sql @@ -1,11 +1,9 @@ -create or replace function pgq.ticker(i_queue_name text, i_tick_id bigint) +create or replace function pgq.ticker(i_queue_name text, i_tick_id bigint, i_orig_timestamp timestamptz) returns bigint as $$ -- ---------------------------------------------------------------------- --- Function: pgq.ticker(2) --- --- Insert a tick with a particular tick_id. +-- Function: pgq.ticker(3) -- --- For external tickers. +-- External ticker: Insert a tick with a particular tick_id and timestamp. -- -- Parameters: -- i_queue_name - Name of the queue @@ -15,18 +13,37 @@ returns bigint as $$ -- Tick id. -- ---------------------------------------------------------------------- begin - insert into pgq.tick (tick_queue, tick_id) - select queue_id, i_tick_id + insert into pgq.tick (tick_queue, tick_id, tick_time) + select queue_id, i_tick_id, i_orig_timestamp from pgq.queue where queue_name = i_queue_name and queue_external_ticker; if not found then - raise exception 'queue not found'; + raise exception 'queue not found or external ticker disabled: %', i_queue_name; end if; return i_tick_id; end; $$ language plpgsql security definer; -- unsure about access +create or replace function pgq.ticker(i_queue_name text, i_tick_id bigint) +returns bigint as $$ +-- ---------------------------------------------------------------------- +-- Function: pgq.ticker(2) +-- +-- External ticker: insert a tick with a particular tick_id. +-- +-- Parameters: +-- i_queue_name - Name of the queue +-- i_tick_id - Id of new tick. +-- +-- Returns: +-- Tick id. +-- ---------------------------------------------------------------------- +begin + return pgq.ticker(i_queue_name, i_tick_id, now()); +end; +$$ language plpgsql security definer; -- unsure about access + create or replace function pgq.ticker(i_queue_name text) returns bigint as $$ -- ---------------------------------------------------------------------- -- 2.39.5