Re: adding partitioned tables to publications
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Petr Jelinek <petr@2ndquadrant.com>,
Rafia Sabih <rafia.pghackers@gmail.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-04-17T13:23:50Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix RELCACHE_FORCE_RELEASE issue
- 12fb189bfeaf 13.0 landed
-
Allow publishing partition changes via ancestors
- 83fd4532a721 13.0 landed
-
Add logical replication support to replicate into partitioned tables
- f1ac27bfda6c 13.0 landed
-
Refactor code to look up local replication tuple
- d8653f468789 13.0 landed
-
Some refactoring of logical/worker.c
- 97ee604d9bce 13.0 landed
-
Prepare to support non-tables in publications
- c314c147c056 13.0 landed
-
Support adding partitioned tables to publication
- 17b9e7f9fe23 13.0 landed
On 2020-04-09 09:28, Amit Langote wrote: >> This patch makes the tests pass for me: >> >> diff --git a/src/backend/replication/pgoutput/pgoutput.c >> b/src/backend/replication/pgoutput/pgoutput.c >> index 5fbf2d4367..cf6e8629c1 100644 >> --- a/src/backend/replication/pgoutput/pgoutput.c >> +++ b/src/backend/replication/pgoutput/pgoutput.c >> @@ -305,7 +305,7 @@ 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); >> >> Please check. > > Thanks. Yes, that's what I just found out too and was about to send a > patch, which is basically same as yours as far as the fix for this > issue is concerned. I have committed my patch but not ... > While figuring this out, I thought the nearby code could be rearranged > a bit, especially to de-duplicate the code. Also, I think > get_rel_sync_entry() may be a better place to set the map, rather than > maybe_send_schema(). Thoughts? because I didn't really have an opinion on that at the time, but if you still want it considered or have any open thoughts on this thread, please resend or explain. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services