projects
/
postgresql.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f352f91
)
Get a snapshot before COPY in table sync
author
Peter Eisentraut
Wed, 2 Aug 2017 14:59:01 +0000
(10:59 -0400)
committer
Peter Eisentraut
Wed, 2 Aug 2017 15:34:42 +0000
(11:34 -0400)
This fixes a crash if the local table has a function index and the
function makes non-immutable calls.
Reported-by: Scott Milliken
Author: Masahiko Sawada
src/backend/replication/logical/tablesync.c
patch
|
blob
|
blame
|
history
diff --git
a/src/backend/replication/logical/tablesync.c
b/src/backend/replication/logical/tablesync.c
index 32abf5b368a287a72db00f1272ce5d3d42521ae0..4cca0f1a85f70233cede5881436c7070b5149736 100644
(file)
--- a/
src/backend/replication/logical/tablesync.c
+++ b/
src/backend/replication/logical/tablesync.c
@@
-917,7
+917,9
@@
LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
walrcv_create_slot(wrconn, slotname, true,
CRS_USE_SNAPSHOT, origin_startpos);
+ PushActiveSnapshot(GetTransactionSnapshot());
copy_table(rel);
+ PopActiveSnapshot();
res = walrcv_exec(wrconn, "COMMIT", 0, NULL);
if (res->status != WALRCV_OK_COMMAND)