node3 | dbname=node3 | f
(3 rows)
-select * from pgq_set.create_node('aset', 'root', 'node1', null, null, null);
+select * from pgq_set.create_node('aset', 'root', 'node1', 'worker', null, null, null);
ret_code | ret_desc
----------+----------
200 | Ok
(1 row)
select * from pgq_set.get_node_info('aset');
- node_type | node_name | queue_name | global_watermark | local_watermark | completed_tick | provider_node | paused | resync | up_to_date | combined_set | combined_type | combined_queue
------------+-----------+------------+------------------+-----------------+----------------+---------------+--------+--------+------------+--------------+---------------+----------------
- root | node1 | aset | 1 | | | | f | f | f | | |
+ node_type | node_name | queue_name | global_watermark | local_watermark | completed_tick | worker_name | provider_node | provider_location | paused | resync | up_to_date | combined_set | combined_type | combined_queue
+-----------+-----------+------------+------------------+-----------------+----------------+-------------+---------------+-------------------+--------+--------+------------+--------------+---------------+----------------
+ root | node1 | aset | 1 | 1 | | worker | | | f | f | f | | |
(1 row)
+select * from pgq_set.is_root('q');
+ERROR: set does not exist: q
+select * from pgq_set.is_root('aset');
+ is_root
+---------
+ t
+(1 row)
+
+select * from pgq_set.is_root(null);
+ERROR: set does not exist: <NULL>
--- /dev/null
+create or replace function pgq_set.is_root(i_set_name text)
+returns bool as $$
+-- ----------------------------------------------------------------------
+-- Function: pgq_set.is_root(1)
+--
+-- Checs if node is root.
+--
+-- Parameters:
+-- i_set_name - set name
+-- ----------------------------------------------------------------------
+declare
+ res bool;
+begin
+ select n.node_type = 'root' into res
+ from pgq_set.set_info n
+ where n.set_name = i_set_name;
+ if not found then
+ raise exception 'set does not exist: %', i_set_name;
+ end if;
+ return res;
+end;
+$$ language plpgsql;
+
\set ECHO none
\i ../txid/txid.sql
\i ../pgq/pgq.sql
-\i ../londiste/londiste.sql
\i structure/pgq_set.sql
\i structure/functions.sql
\set ECHO all
select * from pgq_set.create_node('aset', 'root', 'node1', 'worker', null, null, null);
select * from pgq_set.get_node_info('aset');
+
+select * from pgq_set.is_root('q');
+select * from pgq_set.is_root('aset');
+select * from pgq_set.is_root(null);
+
-- Group: Node Info
\i functions/pgq_set.get_node_info.sql
+\i functions/pgq_set.is_root.sql
-- Group: Watermark tracking
\i functions/pgq_set.set_subscriber_watermark.sql