r record;
begin
_subcon_name := i_consumer_name || '.' || i_subconsumer_name;
- -- er... shouldn't we lock the subscription table?
+
+ -- make sure main consumer exists
+ perform pgq.register_consumer(i_queue_name, i_consumer_name);
-- just go and register the subconsumer as a regular consumer
_subcon_result := pgq.register_consumer(i_queue_name, _subcon_name);
update pgq.queue set queue_ticker_max_count = 1 where queue_name = 'testqueue';
-- register
-select pgq.register_consumer('testqueue', 'maincons');
+select pgq_coop.register_subconsumer('testqueue', 'maincons', 'subcons1');
select pgq_coop.register_subconsumer('testqueue', 'maincons', 'subcons1');
select pgq_coop.register_subconsumer('testqueue', 'maincons', 'subcons1');
select pgq_coop.register_subconsumer('testqueue', 'maincons', 'subcons2');
select pgq_coop.finish_batch(2);
-- test takeover
+select pgq_coop.next_batch('testqueue', 'maincons', 'subcons2', '1 hour');
update pgq.subscription set sub_active = '2005-01-01' where sub_batch is not null;
select pgq_coop.next_batch('testqueue', 'maincons', 'subcons2', '1 hour');