diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2017-06-07 13:49:14 -0400 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2017-06-07 13:49:14 -0400 |
commit | 644ea35fc1352d845299563c7ddfb8b524ed27d9 (patch) | |
tree | b020ec700bd642a3556dc87f5547bfe73afd350b /src/backend/commands/subscriptioncmds.c | |
parent | 15ce775faa428dc91027e4e2d6b7a167a27118b5 (diff) | |
download | postgresql-644ea35fc1352d845299563c7ddfb8b524ed27d9.tar.gz postgresql-644ea35fc1352d845299563c7ddfb8b524ed27d9.zip |
Fix updating of pg_subscription_rel from workers
A logical replication worker should not insert new rows into
pg_subscription_rel, only update existing rows, so that there are no
races if a concurrent refresh removes rows. Adjust the API to be able
to choose that behavior.
Author: Masahiko Sawada <sawada.mshk@gmail.com>
Reported-by: tushar <tushar.ahuja@enterprisedb.com>
Diffstat (limited to 'src/backend/commands/subscriptioncmds.c')
-rw-r--r-- | src/backend/commands/subscriptioncmds.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index ad98b38efe8..49737a90420 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -451,7 +451,7 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel) rv->schemaname, rv->relname); SetSubscriptionRelState(subid, relid, table_state, - InvalidXLogRecPtr); + InvalidXLogRecPtr, false); } ereport(NOTICE, @@ -574,7 +574,7 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data) { SetSubscriptionRelState(sub->oid, relid, copy_data ? SUBREL_STATE_INIT : SUBREL_STATE_READY, - InvalidXLogRecPtr); + InvalidXLogRecPtr, false); ereport(NOTICE, (errmsg("added subscription for table %s.%s", quote_identifier(rv->schemaname), |