diff options
author | Alvaro Herrera | 2017-01-20 19:45:02 +0000 |
---|---|---|
committer | Alvaro Herrera | 2017-01-20 19:45:02 +0000 |
commit | 50cf1c80e6be80cc620749824fe9e3cd7f6c118e (patch) | |
tree | 91ae046f8757e0b8a90402a5997cf8248fb817b8 | |
parent | a600ee9e3fcc43d4497d18d837f1e86148ca7580 (diff) |
Record dependencies on owners for logical replication objects
This was forgotten in 665d1fad99e7b11678b0d5fa24d2898424243cd6 and
caused the whole buildfarm to become red for a little while.
Author: Petr JelĂnek
Also fix a typo in a nearby error message.
-rw-r--r-- | src/backend/commands/publicationcmds.c | 2 | ||||
-rw-r--r-- | src/backend/commands/subscriptioncmds.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index 21e523deb08..63dcc10bd31 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -218,6 +218,8 @@ CreatePublication(CreatePublicationStmt *stmt) CatalogUpdateIndexes(rel, tup); heap_freetuple(tup); + recordDependencyOnOwner(PublicationRelationId, puboid, GetUserId()); + ObjectAddressSet(myself, PublicationRelationId, puboid); /* Make the changes visible. */ diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index 1448ee3beea..2b6d3225594 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -210,6 +210,7 @@ CreateSubscription(CreateSubscriptionStmt *stmt) Oid subid; bool nulls[Natts_pg_subscription]; Datum values[Natts_pg_subscription]; + Oid owner = GetUserId(); HeapTuple tup; bool enabled_given; bool enabled; @@ -263,7 +264,7 @@ CreateSubscription(CreateSubscriptionStmt *stmt) values[Anum_pg_subscription_subdbid - 1] = ObjectIdGetDatum(MyDatabaseId); values[Anum_pg_subscription_subname - 1] = DirectFunctionCall1(namein, CStringGetDatum(stmt->subname)); - values[Anum_pg_subscription_subowner - 1] = ObjectIdGetDatum(GetUserId()); + values[Anum_pg_subscription_subowner - 1] = ObjectIdGetDatum(owner); values[Anum_pg_subscription_subenabled - 1] = BoolGetDatum(enabled); values[Anum_pg_subscription_subconninfo - 1] = CStringGetTextDatum(conninfo); @@ -279,6 +280,8 @@ CreateSubscription(CreateSubscriptionStmt *stmt) CatalogUpdateIndexes(rel, tup); heap_freetuple(tup); + recordDependencyOnOwner(SubscriptionRelationId, subid, owner); + snprintf(originname, sizeof(originname), "pg_%u", subid); replorigin_create(originname); @@ -493,6 +496,9 @@ DropSubscription(DropSubscriptionStmt *stmt) ReleaseSysCache(tup); + /* Clean up dependencies */ + deleteSharedDependencyRecordsFor(SubscriptionRelationId, subid, 0); + /* Protect against launcher restarting the worker. */ LWLockAcquire(LogicalRepLauncherLock, LW_EXCLUSIVE); @@ -530,7 +536,7 @@ DropSubscription(DropSubscriptionStmt *stmt) if (!walrcv_command(wrconn, cmd.data, &err)) ereport(ERROR, - (errmsg("count not drop the replication slot \"%s\" on publisher", + (errmsg("could not drop the replication slot \"%s\" on publisher", slotname), errdetail("The error was: %s", err))); else |