Re: row filtering for logical replication

From: a(dot)kondratov(at)postgrespro(dot)ru
To: Euler Taveira <euler(at)timbira(dot)com(dot)br>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Petr Jelinek <petr(dot)jelinek(at)2ndquadrant(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Suzuki Hironobu <hironobu(at)interdb(dot)jp>
Subject: Re: row filtering for logical replication
Date: 2019-08-27 21:10:47
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi Euler,

On 2019-02-03 13:14, Andres Freund wrote:
> On 2018-11-23 13:15:08 -0300, Euler Taveira wrote:
>> Besides the problem presented by Hironobu-san, I'm doing some cleanup
>> and improving docs. I also forget to declare pg_publication_rel TOAST
>> table.
>> Thanks for your review.
> As far as I can tell, the patch has not been refreshed since. So I'm
> marking this as returned with feedback for now. Please resubmit once
> ready.

Do you have any plans for continuing working on this patch and
submitting it again on the closest September commitfest? There are only
a few days left. Anyway, I will be glad to review the patch if you do
submit it, though I didn't yet dig deeply into the code.

I've rebased recently the entire patch set (attached) and it works fine.
Your tap test is passed. Also I've added a new test case (see 0009
attached) with real life example of bidirectional replication (BDR)
utilising this new WHERE clause. This naive BDR is implemented using
is_cloud flag, which is set to TRUE/FALSE on cloud/remote nodes

Although almost all new tests are passed, there is a problem with DELETE
replication, so 1 out of 10 tests is failed. It isn't replicated if the
record was created with is_cloud=TRUE on cloud, replicated to remote;
then updated with is_cloud=FALSE on remote, replicated to cloud; then
deleted on remote.

Alexey Kondratov
Postgres Professional
Russian Postgres Company

Attachment Content-Type Size
v2-0001-Remove-unused-atttypmod-column-from-initial-table.patch text/x-diff 2.1 KB
v2-0002-Store-number-of-tuples-in-WalRcvExecResult.patch text/x-diff 3.5 KB
v2-0003-Refactor-function-create_estate_for_relation.patch text/x-diff 2.6 KB
v2-0004-Rename-a-WHERE-node.patch text/x-diff 1.7 KB
v2-0005-Row-filtering-for-logical-replication.patch text/x-diff 41.3 KB
v2-0006-Print-publication-WHERE-condition-in-psql.patch text/x-diff 1.2 KB
v2-0007-Publication-where-condition-support-for-pg_dump.patch text/x-diff 2.8 KB
v2-0008-Debug-for-row-filtering.patch text/x-diff 6.6 KB
v2-0009-Add-simple-BDR-test-for-row-filtering.patch text/x-diff 7.8 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2019-08-27 22:04:53 Re: doc: clarify "pg_signal_backend" default role
Previous Message Tom Lane 2019-08-27 19:15:24 Re: Missing newline in pg_upgrade usage()