mirror of
https://github.com/postgres/postgres.git
synced 2025-11-01 21:31:19 +03:00
Add worker type argument to logical replication worker functions.
Extend logicalrep_worker_stop, logicalrep_worker_wakeup, and logicalrep_worker_find to accept a worker type argument. This change enables differentiation between logical replication worker types, such as apply workers and table sync workers. While preserving existing behavior, it lays the groundwork for upcoming patch to add sequence synchronization workers. Author: Vignesh C <vignesh21@gmail.com> Reviewed-by: shveta malik <shveta.malik@gmail.com> Reviewed-by: Peter Smith <smithpb2250@gmail.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com> Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com> Reviewed-by: Amit Kapila <amit.kapila16@gmail.com> Discussion: https://postgr.es/m/CAA4eK1LC+KJiAkSrpE_NwvNdidw9F2os7GERUeSxSKv71gXysQ@mail.gmail.com
This commit is contained in:
@@ -160,7 +160,8 @@ wait_for_table_state_change(Oid relid, char expected_state)
|
||||
|
||||
/* Check if the sync worker is still running and bail if not. */
|
||||
LWLockAcquire(LogicalRepWorkerLock, LW_SHARED);
|
||||
worker = logicalrep_worker_find(MyLogicalRepWorker->subid, relid,
|
||||
worker = logicalrep_worker_find(WORKERTYPE_TABLESYNC,
|
||||
MyLogicalRepWorker->subid, relid,
|
||||
false);
|
||||
LWLockRelease(LogicalRepWorkerLock);
|
||||
if (!worker)
|
||||
@@ -207,8 +208,9 @@ wait_for_worker_state_change(char expected_state)
|
||||
* waiting.
|
||||
*/
|
||||
LWLockAcquire(LogicalRepWorkerLock, LW_SHARED);
|
||||
worker = logicalrep_worker_find(MyLogicalRepWorker->subid,
|
||||
InvalidOid, false);
|
||||
worker = logicalrep_worker_find(WORKERTYPE_APPLY,
|
||||
MyLogicalRepWorker->subid, InvalidOid,
|
||||
false);
|
||||
if (worker && worker->proc)
|
||||
logicalrep_worker_wakeup_ptr(worker);
|
||||
LWLockRelease(LogicalRepWorkerLock);
|
||||
@@ -476,7 +478,8 @@ ProcessSyncingTablesForApply(XLogRecPtr current_lsn)
|
||||
*/
|
||||
LWLockAcquire(LogicalRepWorkerLock, LW_SHARED);
|
||||
|
||||
syncworker = logicalrep_worker_find(MyLogicalRepWorker->subid,
|
||||
syncworker = logicalrep_worker_find(WORKERTYPE_TABLESYNC,
|
||||
MyLogicalRepWorker->subid,
|
||||
rstate->relid, false);
|
||||
|
||||
if (syncworker)
|
||||
|
||||
Reference in New Issue
Block a user