diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c index 61ff8f2..7080c4b 100644 --- a/src/backend/commands/dropcmds.c +++ b/src/backend/commands/dropcmds.c @@ -441,6 +441,10 @@ does_not_exist_skipping(ObjectType objtype, List *objname, List *objargs) } } break; + case OBJECT_PUBLICATION: + msg = gettext_noop("publication \"%s\" does not exist, skipping"); + name = NameListToString(objname); + break; default: elog(ERROR, "unrecognized object type: %d", (int) objtype); break; diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index 25c8c34..bd27aac 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -492,6 +492,8 @@ DropSubscription(DropSubscriptionStmt *stmt) if (!HeapTupleIsValid(tup)) { + heap_close(rel, NoLock); + if (!stmt->missing_ok) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), @@ -501,6 +503,7 @@ DropSubscription(DropSubscriptionStmt *stmt) ereport(NOTICE, (errmsg("subscription \"%s\" does not exist, skipping", stmt->subname))); + return; }