alter_pub_for_schema.patch
application/octet-stream
Filename: alter_pub_for_schema.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/backend/catalog/pg_publication.c | 5 | 0 |
diff --git a/src/backend/catalog/pg_publication.c b/src/backend/catalog/pg_publication.c
index 0602398a54..067336d02c 100644
--- a/src/backend/catalog/pg_publication.c
+++ b/src/backend/catalog/pg_publication.c
@@ -32,6 +32,7 @@
#include "catalog/pg_type.h"
#include "commands/publicationcmds.h"
#include "funcapi.h"
+#include "storage/lmgr.h"
#include "utils/array.h"
#include "utils/builtins.h"
#include "utils/catcache.h"
@@ -614,6 +615,7 @@ publication_add_schema(Oid pubid, Oid schemaid, bool if_not_exists)
List *schemaRels = NIL;
ObjectAddress myself,
referenced;
+ ListCell* lc;
rel = table_open(PublicationNamespaceRelationId, RowExclusiveLock);
@@ -677,6 +679,9 @@ publication_add_schema(Oid pubid, Oid schemaid, bool if_not_exists)
*/
schemaRels = GetSchemaPublicationRelations(schemaid,
PUBLICATION_PART_ALL);
+ foreach(lc, schemaRels) {
+ LockRelationOid(lfirst_oid(lc), ShareRowExclusiveLock);
+ }
InvalidatePublicationRels(schemaRels);
return myself;