mirror of
https://github.com/postgres/postgres.git
synced 2025-09-05 02:22:28 +03:00
Improve subscription locking
This avoids "tuple concurrently updated" errors when a ALTER or DROP SUBSCRIPTION writes to pg_subscription_rel at the same time as a worker. Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
This commit is contained in:
@@ -644,6 +644,9 @@ AlterSubscription(AlterSubscriptionStmt *stmt)
|
||||
subid = HeapTupleGetOid(tup);
|
||||
sub = GetSubscription(subid, false);
|
||||
|
||||
/* Lock the subscription so nobody else can do anything with it. */
|
||||
LockSharedObject(SubscriptionRelationId, subid, 0, AccessExclusiveLock);
|
||||
|
||||
/* Form a new tuple. */
|
||||
memset(values, 0, sizeof(values));
|
||||
memset(nulls, false, sizeof(nulls));
|
||||
|
Reference in New Issue
Block a user