Re: row filtering for logical replication

From: Ajin Cherian <itsajin(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Euler Taveira <euler(at)eulerto(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Greg Nancarrow <gregn4422(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Önder Kalacı <onderkalaci(at)gmail(dot)com>, japin <japinli(at)hotmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, David Steele <david(at)pgmasters(dot)net>, Craig Ringer <craig(at)2ndquadrant(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: row filtering for logical replication
Date: 2021-12-22 11:29:43
Message-ID: CAFPTHDaqWcefAoVsurJDQ6bKK9_U2wNCWEuOrkt70ZKspfWhGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Dec 21, 2021 at 5:19 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> Yeah, deforming tuples again can have a significant cost but what is
> the need to maintain tmp_new_tuple in relsyncentry. I think that is
> required in rare cases, so we can probably allocate/deallocate when
> required.

Fixed this.

>
> Few other comments:
> ==================
> 1.
> TupleTableSlot *scantuple; /* tuple table slot for row filter */
> + TupleTableSlot *new_tuple; /* slot for storing deformed new tuple
> during updates */
> + TupleTableSlot *old_tuple; /* slot for storing deformed old tuple
> during updates */
>
> I think it is better to name these as scan_slot, new_slot, old_slot to
> avoid confusion with tuples.
>

Fixed this.

> 2.
> +++ b/src/backend/replication/logical/proto.c
> @@ -19,6 +19,7 @@
> #include "replication/logicalproto.h"
> #include "utils/lsyscache.h"
> #include "utils/syscache.h"
> +#include "executor/executor.h"
>
> The include is in wrong order. We keep includes in alphabatic order.
>

Fixed this.

> 3.
> @@ -832,6 +847,7 @@ logicalrep_write_tuple(StringInfo out, Relation
> rel, HeapTuple tuple, bool binar
>
> ReleaseSysCache(typtup);
> }
> +
> }
>
> Spurious addition.
>

Fixed this.

regards,
Ajin Cherian

Attachment Content-Type Size
v53-0002-Row-filter-updates-based-on-old-new-tuples.patch application/octet-stream 23.4 KB
v53-0003-Row-filter-tab-auto-complete-and-pgdump.patch application/octet-stream 5.6 KB
v53-0001-Row-filter-for-logical-replication.patch application/octet-stream 132.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2021-12-22 11:35:56 Re: support for MERGE
Previous Message Ashutosh Sharma 2021-12-22 10:56:18 Re: [Proposal] Fully WAL logged CREATE DATABASE - No Checkpoints