]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix RELCACHE_FORCE_RELEASE issue
authorPeter Eisentraut <peter@eisentraut.org>
Sat, 11 Apr 2020 13:07:25 +0000 (15:07 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Sat, 11 Apr 2020 13:07:25 +0000 (15:07 +0200)
Introduced by 83fd4532a72179c370e318075a10e0e2aa832024.  To fix, the
tuple descriptors need to be copied into the current memory context.

Discussion: https://www.postgresql.org/message-id/04d78603-edae-9243-9dde-fe3037176a7d@2ndquadrant.com

src/backend/replication/pgoutput/pgoutput.c

index 5fbf2d4367b14f2d25613136082d70a61930926d..77b85fc65575ce4a53aa33ee114aa7d0f1f8885f 100644 (file)
@@ -305,7 +305,8 @@ maybe_send_schema(LogicalDecodingContext *ctx,
 
                /* Map must live as long as the session does. */
                oldctx = MemoryContextSwitchTo(CacheMemoryContext);
-               relentry->map = convert_tuples_by_name(indesc, outdesc);
+               relentry->map = convert_tuples_by_name(CreateTupleDescCopy(indesc),
+                                                                                          CreateTupleDescCopy(outdesc));
                MemoryContextSwitchTo(oldctx);
                send_relation_and_attrs(ancestor, ctx);
                RelationClose(ancestor);