RE: row filtering for logical replication
От | houzj.fnst@fujitsu.com |
---|---|
Тема | RE: row filtering for logical replication |
Дата | |
Msg-id | OS0PR01MB5716DAA3F3DFC6A1C7D1DD73945B9@OS0PR01MB5716.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: row filtering for logical replication (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: row filtering for logical replication
Re: row filtering for logical replication |
Список | pgsql-hackers |
On Thursday, January 20, 2022 8:53 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Thu, Jan 20, 2022 at 5:03 PM tanghy.fnst@fujitsu.com > <tanghy.fnst@fujitsu.com> wrote: > > > > On Thu, Jan 20, 2022 9:13 AM houzj.fnst@fujitsu.com > <houzj.fnst@fujitsu.com> wrote: > > > Attach the V68 patch set which addressed the above comments and > changes. > > > The version patch also fix the error message mentioned by Greg[1] > > > > > > > I saw a problem about this patch, which is related to Replica Identity check. > > > > For example: > > -- publisher -- > > create table tbl (a int); > > create publication pub for table tbl where (a>10) with (publish='delete'); > > insert into tbl values (1); > > update tbl set a=a+1; > > > > postgres=# update tbl set a=a+1; > > ERROR: cannot update table "tbl" > > DETAIL: Column "a" used in the publication WHERE expression is not part of > the replica identity. > > > > I think it shouldn't report the error because the publication didn't publish > UPDATES. > > > > Right, I also don't see any reason why an error should be thrown in > this case. The problem here is that the patch doesn't have any > correspondence between the pubaction and RI column validation for a > particular publication. I think we need to do that and cache that > information unless the publication publishes both updates and deletes > in which case it is okay to directly return invalid column in row > filter as we are doing now. Attach the v69 patch set which fix this. The new version patch also addressed comments from Peter[1] and Amit[2]. I also added some testcases about partitioned table in the 027_row_filter.pl. Note that the comments from Alvaro[3] haven't been addressed because the discussion is still going on, I will address those comments soon. [1] https://www.postgresql.org/message-id/CAHut%2BPtUiaYaihtw6_SmqbwEBXtw6ryc7F%3DVEQkK%3D7HW18dGVg%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAA4eK1JzKYBC5Aos9QncZ%2BJksMLmZjpCcDmBJZQ1qC74AYggNg%40mail.gmail.com [3] https://www.postgresql.org/message-id/202201201313.zaceiqi4qb6h%40alvherre.pgsql Best regards, Hou zj
Вложения
В списке pgsql-hackers по дате отправления: