summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2007-07-16 14:33:54 +0000
committerMarko Kreen2007-07-16 14:33:54 +0000
commit1566c77901d5872d9d47afa7f2928c01a80939f2 (patch)
treea3b986ec4387b097b8d3ee223b8589c01120a816
parentbd81bb16c43dc9a70bf4f2ef53884564d731bcfd (diff)
pgq: add missing indexes
-rw-r--r--sql/pgq/functions/pgq.next_batch.sql5
-rw-r--r--sql/pgq/structure/tables.sql2
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