diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2017-08-04 21:14:35 -0400 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2017-08-04 21:17:47 -0400 |
commit | 7e174fa793a2df89fe03d002a5087ef67abcdde8 (patch) | |
tree | 5fa4c053b549ffd960858c4eefa84c123f2d0157 /src/include/replication | |
parent | ff98a5e1e49de061600feb6b4de5ce0a22d386af (diff) | |
download | postgresql-7e174fa793a2df89fe03d002a5087ef67abcdde8.tar.gz postgresql-7e174fa793a2df89fe03d002a5087ef67abcdde8.zip |
Only kill sync workers at commit time in subscription DDL
This allows a transaction abort to avoid killing those workers.
Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Diffstat (limited to 'src/include/replication')
-rw-r--r-- | src/include/replication/logicallauncher.h | 1 | ||||
-rw-r--r-- | src/include/replication/worker_internal.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h index aac7d326e22..78016c448f3 100644 --- a/src/include/replication/logicallauncher.h +++ b/src/include/replication/logicallauncher.h @@ -22,6 +22,7 @@ extern Size ApplyLauncherShmemSize(void); extern void ApplyLauncherShmemInit(void); extern void ApplyLauncherWakeupAtCommit(void); +extern bool XactManipulatesLogicalReplicationWorkers(void); extern void AtEOXact_ApplyLauncher(bool isCommit); extern bool IsLogicalLauncher(void); diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h index 494a3a3d087..7b8728cced0 100644 --- a/src/include/replication/worker_internal.h +++ b/src/include/replication/worker_internal.h @@ -71,9 +71,11 @@ extern bool in_remote_transaction; extern void logicalrep_worker_attach(int slot); extern LogicalRepWorker *logicalrep_worker_find(Oid subid, Oid relid, bool only_running); +extern List *logicalrep_workers_find(Oid subid, bool only_running); extern void logicalrep_worker_launch(Oid dbid, Oid subid, const char *subname, Oid userid, Oid relid); extern void logicalrep_worker_stop(Oid subid, Oid relid); +extern void logicalrep_worker_stop_at_commit(Oid subid, Oid relid); extern void logicalrep_worker_wakeup(Oid subid, Oid relid); extern void logicalrep_worker_wakeup_ptr(LogicalRepWorker *worker); |