pgq_node.get_node_info: set worker_last_tick to last tick on root.
authorMarko Kreen <markokr@gmail.com>
Tue, 1 Feb 2011 12:23:52 +0000 (14:23 +0200)
committerMarko Kreen <markokr@gmail.com>
Tue, 1 Feb 2011 12:23:52 +0000 (14:23 +0200)
sql/pgq_node/expected/pgq_node_test.out
sql/pgq_node/functions/pgq_node.get_node_info.sql

index c2d3ab7a78263bb70d766d32c0e26a31b710e22c..fcde7419bd53841ce9859a41bb70570a8ea39ee1 100644 (file)
@@ -146,7 +146,7 @@ select queue_name, consumer_name, last_tick from pgq.get_consumer_info();
 select * from pgq_node.get_node_info('aqueue');
  ret_code | ret_note | node_type | node_name | global_watermark | local_watermark | provider_node | provider_location | combined_queue | combined_type | worker_name  | worker_paused | worker_uptodate | worker_last_tick 
 ----------+----------+-----------+-----------+------------------+-----------------+---------------+-------------------+----------------+---------------+--------------+---------------+-----------------+------------------
-      100 | Ok       | root      | node1     |                1 |               1 | node1         | dbname=node1      |                |               | node1_worker | f             | f               |                1
+      100 | Ok       | root      | node1     |                1 |               1 | node1         | dbname=node1      |                |               | node1_worker | f             | f               |                3
 (1 row)
 
 select * from pgq_node.get_subscriber_info('aqueue');
@@ -211,7 +211,7 @@ select * from pgq_node.node_info;
 select * from pgq_node.get_node_info('aqueue');
  ret_code | ret_note | node_type | node_name | global_watermark | local_watermark | provider_node | provider_location | combined_queue | combined_type | worker_name  | worker_paused | worker_uptodate | worker_last_tick 
 ----------+----------+-----------+-----------+------------------+-----------------+---------------+-------------------+----------------+---------------+--------------+---------------+-----------------+------------------
-      100 | Ok       | root      | node1     |                1 |               1 | node1         | dbname=node1      |                |               | node1_worker | f             | f               |                1
+      100 | Ok       | root      | node1     |                1 |               1 | node1         | dbname=node1      |                |               | node1_worker | f             | f               |                3
 (1 row)
 
 select * from pgq_node.get_node_info('bqueue');
index 306dde13815d0b8ade5cbd43a401495ced5d5a5e..5f00d693e224d29337db74a2e4ddfd7b16c1aa6a 100644 (file)
@@ -76,6 +76,16 @@ begin
     else
         local_watermark := worker_last_tick;
     end if;
+
+    if node_type = 'root' then
+        select tick_id from pgq.tick t, pgq.queue q
+         where q.queue_name = i_queue_name
+           and t.tick_queue = q.queue_id
+         order by t.tick_queue desc, t.tick_id desc
+         limit 1
+         into worker_last_tick;
+    end if;
+
     return;
 end;
 $$ language plpgsql security definer;