Re: adding partitioned tables to publications
amit <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Rafia Sabih <rafia.pghackers@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-11-18T08:53:11Z
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
Attachments
- v5-0001-Support-adding-partitioned-tables-to-publications.patch (application/octet-stream) patch v5-0001
On Tue, Nov 12, 2019 at 10:11 AM Amit Langote <amitlangote09@gmail.com> wrote: > Initial > syncing code can be easily modified to support any combination of > source and target relations, but changes needed for real-time > replication seem non-trivial. I have spent some time hacking on this. With the attached updated patch, adding a partitioned table to publication results in publishing the inserts, updates, deletes of the table's leaf partitions as inserts, updates, deletes of the table itself (it all happens inside pgoutput). So, the replication target table doesn't necessarily have to be a partitioned table and even if it is partitioned its partitions don't have to match one-to-one. One restriction remains though: partitioned tables on a subscriber can't accept updates and deletes, because we'd need to map those to updates and deletes of their partitions, including handling a tuple possibly moving from one partition to another during an update. Also, I haven't added subscription tests yet. Attached updated patch. The previous division into a refactoring patch and feature patch no longer made to sense to me, so there is only one this time. Thanks, Amit