summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera2017-01-20 19:45:02 +0000
committerAlvaro Herrera2017-01-20 19:45:02 +0000
commit50cf1c80e6be80cc620749824fe9e3cd7f6c118e (patch)
tree91ae046f8757e0b8a90402a5997cf8248fb817b8
parenta600ee9e3fcc43d4497d18d837f1e86148ca7580 (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.c2
-rw-r--r--src/backend/commands/subscriptioncmds.c10
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