aboutsummaryrefslogtreecommitdiff
path: root/src/include/replication
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-08-04 21:14:35 -0400
committerPeter Eisentraut <peter_e@gmx.net>2017-08-04 21:17:47 -0400
commit7e174fa793a2df89fe03d002a5087ef67abcdde8 (patch)
tree5fa4c053b549ffd960858c4eefa84c123f2d0157 /src/include/replication
parentff98a5e1e49de061600feb6b4de5ce0a22d386af (diff)
downloadpostgresql-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.h1
-rw-r--r--src/include/replication/worker_internal.h2
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);