pgq_node.upgrade_schema(): magic schema upgrade
authorMarko Kreen <markokr@gmail.com>
Thu, 8 Sep 2011 15:10:35 +0000 (17:10 +0200)
committerMarko Kreen <markokr@gmail.com>
Thu, 8 Sep 2011 15:10:35 +0000 (17:10 +0200)
also sync regtest output

sql/pgq_node/expected/pgq_node_test.out
sql/pgq_node/functions/pgq_node.upgrade_schema.sql [new file with mode: 0644]
sql/pgq_node/structure/functions.sql

index fcde7419bd53841ce9859a41bb70570a8ea39ee1..fe0b60e8cb30ff3cada3f0319a0ddf7b8d3f5118 100644 (file)
@@ -1,4 +1,14 @@
 \set ECHO none
+ upgrade_schema 
+----------------
+              0
+(1 row)
+
+ upgrade_schema 
+----------------
+              0
+(1 row)
+
 select * from pgq_node.register_location('aqueue', 'node1', 'dbname=node1', false);
  ret_code |      ret_note       
 ----------+---------------------
@@ -116,6 +126,12 @@ select queue_name, consumer_name, last_tick from pgq.get_consumer_info();
  aqueue     | node2_worker      |         1
 (3 rows)
 
+select * from pgq_node.get_worker_state('aqueue');
+ ret_code | ret_note | node_type | node_name | completed_tick | provider_node | provider_location | paused | uptodate | cur_error | worker_name  | global_watermark | local_watermark | local_queue_top | combined_queue | combined_type 
+----------+----------+-----------+-----------+----------------+---------------+-------------------+--------+----------+-----------+--------------+------------------+-----------------+-----------------+----------------+---------------
+      100 | Ok       | root      | node1     |              1 | node1         | dbname=node1      | f      | f        |           | node1_worker |                1 |               1 |               1 |                | 
+(1 row)
+
 update pgq.queue set queue_ticker_max_lag = '0', queue_ticker_idle_period = '0';
 select * from pgq.ticker('aqueue');
  ticker 
@@ -226,6 +242,24 @@ select * from pgq_node.get_node_info('cqueue');
       404 | Unknown queue: cqueue |           |           |                  |                 |               |                   |                |               |             |               |                 |                 
 (1 row)
 
+select * from pgq_node.get_worker_state('aqueue');
+ ret_code | ret_note | node_type | node_name | completed_tick | provider_node | provider_location | paused | uptodate | cur_error | worker_name  | global_watermark | local_watermark | local_queue_top | combined_queue | combined_type 
+----------+----------+-----------+-----------+----------------+---------------+-------------------+--------+----------+-----------+--------------+------------------+-----------------+-----------------+----------------+---------------
+      100 | Ok       | root      | node1     |              1 | node1         | dbname=node1      | f      | f        |           | node1_worker |                1 |               1 |               3 |                | 
+(1 row)
+
+select * from pgq_node.get_worker_state('bqueue');
+ ret_code | ret_note | node_type | node_name | completed_tick | provider_node | provider_location | paused | uptodate | cur_error | worker_name  | global_watermark | local_watermark | local_queue_top | combined_queue | combined_type 
+----------+----------+-----------+-----------+----------------+---------------+-------------------+--------+----------+-----------+--------------+------------------+-----------------+-----------------+----------------+---------------
+      100 | Ok       | branch    | node2     |              1 | node1         | dbname=node1      | f      | f        |           | node2_worker |                1 |               1 |               1 |                | 
+(1 row)
+
+select * from pgq_node.get_worker_state('cqueue');
+ ret_code |       ret_note        | node_type | node_name | completed_tick | provider_node | provider_location | paused | uptodate | cur_error | worker_name | global_watermark | local_watermark | local_queue_top | combined_queue | combined_type 
+----------+-----------------------+-----------+-----------+----------------+---------------+-------------------+--------+----------+-----------+-------------+------------------+-----------------+-----------------+----------------+---------------
+      404 | Unknown queue: cqueue |           |           |                |               |                   |        |          |           |             |                  |                 |                 |                | 
+(1 row)
+
 select * from pgq_node.is_root_node('aqueue');
  is_root_node 
 --------------
@@ -355,4 +389,35 @@ select * from pgq_node.demote_root('aqueue', 3, 'node3');
       301 | Node not root |          
 (1 row)
 
+-- leaf node
+select * from pgq_node.register_location('mqueue', 'node1', 'dbname=node1', false);
+ ret_code |      ret_note       
+----------+---------------------
+      200 | Location registered
+(1 row)
+
+select * from pgq_node.register_location('mqueue', 'node2', 'dbname=node2', false);
+ ret_code |      ret_note       
+----------+---------------------
+      200 | Location registered
+(1 row)
+
+select * from pgq_node.register_location('mqueue', 'node3', 'dbname=node3', false);
+ ret_code |      ret_note       
+----------+---------------------
+      200 | Location registered
+(1 row)
+
+select * from pgq_node.create_node('mqueue', 'leaf', 'node2', 'node2_worker', 'node1', 13, 'aqueue');
+ ret_code |                           ret_note                           
+----------+--------------------------------------------------------------
+      200 | Node "node2" initialized for queue "mqueue" with type "leaf"
+(1 row)
+
+select * from pgq_node.get_worker_state('mqueue');
+ ret_code | ret_note | node_type | node_name | completed_tick | provider_node | provider_location | paused | uptodate | cur_error | worker_name  | global_watermark | local_watermark | local_queue_top | combined_queue | combined_type 
+----------+----------+-----------+-----------+----------------+---------------+-------------------+--------+----------+-----------+--------------+------------------+-----------------+-----------------+----------------+---------------
+      100 | Ok       | leaf      | node2     |             13 | node1         | dbname=node1      | f      | f        |           | node2_worker |                  |              13 |                 | aqueue         | branch
+(1 row)
+
 \q
diff --git a/sql/pgq_node/functions/pgq_node.upgrade_schema.sql b/sql/pgq_node/functions/pgq_node.upgrade_schema.sql
new file mode 100644 (file)
index 0000000..61130cd
--- /dev/null
@@ -0,0 +1,12 @@
+
+create or replace function pgq_node.upgrade_schema()
+returns int4 as $$
+-- updates table structure if necessary
+declare
+    cnt int4 = 0;
+begin
+    return cnt;
+end;
+$$ language plpgsql;
+
+
index 2ba5cc405b222227dab6b187917159962118bfb5..6196d3d425d11f04d6e5435c258c8fb9afb2ff32 100644 (file)
@@ -2,6 +2,9 @@
 --
 --      Database functions for cascaded pgq.
 
+\i functions/pgq_node.upgrade_schema.sql
+select pgq_node.upgrade_schema();
+
 -- Group: Global Node Map
 \i   functions/pgq_node.register_location.sql
 \i   functions/pgq_node.unregister_location.sql