diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-04-07 11:24:53 -0400 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-04-07 11:34:11 -0400 |
commit | 039eb6e92f20499ac36cc74f8a5cef7430b706f6 (patch) | |
tree | 2cf52aeafb59917d5c7ed396acb6d86325b4a8b0 /src/backend/utils/cache/relcache.c | |
parent | 5dfd1e5a6696b271a2cdee54143fbc209c88c02f (diff) | |
download | postgresql-039eb6e92f20499ac36cc74f8a5cef7430b706f6.tar.gz postgresql-039eb6e92f20499ac36cc74f8a5cef7430b706f6.zip |
Logical replication support for TRUNCATE
Update the built-in logical replication system to make use of the
previously added logical decoding for TRUNCATE support. Add the
required truncate callback to pgoutput and a new logical replication
protocol message.
Publications get a new attribute to determine whether to replicate
truncate actions. When updating a publication via pg_dump from an older
version, this is not set, thus preserving the previous behavior.
Author: Simon Riggs <simon@2ndquadrant.com>
Author: Marco Nenciarini <marco.nenciarini@2ndquadrant.it>
Author: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Reviewed-by: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Diffstat (limited to 'src/backend/utils/cache/relcache.c')
-rw-r--r-- | src/backend/utils/cache/relcache.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index b6ed06d5b3c..40a2c1df049 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -5339,6 +5339,7 @@ GetRelationPublicationActions(Relation relation) pubactions->pubinsert |= pubform->pubinsert; pubactions->pubupdate |= pubform->pubupdate; pubactions->pubdelete |= pubform->pubdelete; + pubactions->pubtruncate |= pubform->pubtruncate; ReleaseSysCache(tup); @@ -5347,7 +5348,7 @@ GetRelationPublicationActions(Relation relation) * other publications. */ if (pubactions->pubinsert && pubactions->pubupdate && - pubactions->pubdelete) + pubactions->pubdelete && pubactions->pubtruncate) break; } |