create-parallel-apply-txn-hash-after-the-first-worker.patch
application/octet-stream
Filename: create-parallel-apply-txn-hash-after-the-first-worker.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/replication/logical/applyparallelworker.c | 4 | 4 |
diff --git a/src/backend/replication/logical/applyparallelworker.c b/src/backend/replication/logical/applyparallelworker.c
index 2e5914d5d9..3dfcff2798 100644
--- a/src/backend/replication/logical/applyparallelworker.c
+++ b/src/backend/replication/logical/applyparallelworker.c
@@ -475,6 +475,10 @@ pa_allocate_worker(TransactionId xid)
if (!pa_can_start())
return;
+ winfo = pa_launch_parallel_worker();
+ if (!winfo)
+ return;
+
/* First time through, initialize parallel apply worker state hashtable. */
if (!ParallelApplyTxnHash)
{
@@ -490,10 +494,6 @@ pa_allocate_worker(TransactionId xid)
HASH_ELEM | HASH_BLOBS | HASH_CONTEXT);
}
- winfo = pa_launch_parallel_worker();
- if (!winfo)
- return;
-
/* Create an entry for the requested transaction. */
entry = hash_search(ParallelApplyTxnHash, &xid, HASH_ENTER, &found);
if (found)