diff options
author | Marko Kreen | 2007-07-16 14:33:54 +0000 |
---|---|---|
committer | Marko Kreen | 2007-07-16 14:33:54 +0000 |
commit | 1566c77901d5872d9d47afa7f2928c01a80939f2 (patch) | |
tree | a3b986ec4387b097b8d3ee223b8589c01120a816 | |
parent | bd81bb16c43dc9a70bf4f2ef53884564d731bcfd (diff) |
pgq: add missing indexes
-rw-r--r-- | sql/pgq/functions/pgq.next_batch.sql | 5 | ||||
-rw-r--r-- | sql/pgq/structure/tables.sql | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/sql/pgq/functions/pgq.next_batch.sql b/sql/pgq/functions/pgq.next_batch.sql index 8d7d8f74..408ba01a 100644 --- a/sql/pgq/functions/pgq.next_batch.sql +++ b/sql/pgq/functions/pgq.next_batch.sql @@ -21,7 +21,7 @@ declare errmsg text; sub record; begin - select sub_queue, sub_id, sub_last_tick, sub_batch into sub + select sub_queue, sub_consumer, sub_id, sub_last_tick, sub_batch into sub from pgq.queue q, pgq.consumer c, pgq.subscription s where q.queue_name = x_queue_name and c.co_name = x_consumer_name @@ -58,7 +58,8 @@ begin set sub_batch = next_batch, sub_next_tick = next_tick, sub_active = now() - where sub_id = sub.sub_id; + where sub_queue = sub.sub_queue + and sub_consumer = sub.sub_consumer; return next_batch; end; $$ language plpgsql security definer; diff --git a/sql/pgq/structure/tables.sql b/sql/pgq/structure/tables.sql index fd4bd364..1810a26a 100644 --- a/sql/pgq/structure/tables.sql +++ b/sql/pgq/structure/tables.sql @@ -137,6 +137,7 @@ create table pgq.subscription ( sub_next_tick bigint, constraint subscription_pkey primary key (sub_id), + constraint subscription_ukey unique (sub_queue, sub_consumer), constraint sub_queue_fkey foreign key (sub_queue) references pgq.queue (queue_id), constraint sub_consumer_fkey foreign key (sub_consumer) @@ -198,6 +199,7 @@ create table pgq.retry_queue ( alter table pgq.retry_queue alter column ev_owner set not null; alter table pgq.retry_queue alter column ev_txid drop not null; create index rq_retry_idx on pgq.retry_queue (ev_retry_after); +create index rq_retry_owner_idx on pgq.retry_queue (ev_owner, ev_id); -- ---------------------------------------------------------------------- -- Table: pgq.failed_queue |