summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorMarko Kreen2014-10-27 13:51:42 +0000
committerMarko Kreen2014-10-27 13:51:42 +0000
commit808ebf8db0f0837f2d89d037eda24f93048d18a3 (patch)
treea9fcf01cb5945e2c395dcadb92a943b83dccd90a /sql
parent70c4b1170b1c7e21d7bbaf6a2034cc62fc7a4c5d (diff)
pgq_node: avoid concurrency in promote/demote
Diffstat (limited to 'sql')
-rw-r--r--sql/pgq_node/functions/pgq_node.demote_root.sql3
-rw-r--r--sql/pgq_node/functions/pgq_node.promote_branch.sql3
2 files changed, 4 insertions, 2 deletions
diff --git a/sql/pgq_node/functions/pgq_node.demote_root.sql b/sql/pgq_node/functions/pgq_node.demote_root.sql
index d3f68d03..a1c67aaf 100644
--- a/sql/pgq_node/functions/pgq_node.demote_root.sql
+++ b/sql/pgq_node/functions/pgq_node.demote_root.sql
@@ -36,7 +36,8 @@ declare
begin
select node_type, worker_name into n_type, w_name
from pgq_node.node_info
- where queue_name = i_queue_name;
+ where queue_name = i_queue_name
+ for update;
if not found then
select 404, 'Node not initialized for queue: ' || i_queue_name
into ret_code, ret_note;
diff --git a/sql/pgq_node/functions/pgq_node.promote_branch.sql b/sql/pgq_node/functions/pgq_node.promote_branch.sql
index 9e2c7a26..c19511a9 100644
--- a/sql/pgq_node/functions/pgq_node.promote_branch.sql
+++ b/sql/pgq_node/functions/pgq_node.promote_branch.sql
@@ -26,7 +26,8 @@ declare
begin
select node_name, node_type, worker_name into n_name, n_type, w_name
from pgq_node.node_info
- where queue_name = i_queue_name;
+ where queue_name = i_queue_name
+ for update;
if not found then
select 404, 'Node not initialized for queue: ' || i_queue_name
into ret_code, ret_note;