RE: row filtering for logical replication
Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Release cache tuple when no longer needed
- ed0fbc8e5ac9 15.0 landed
-
Add some additional tests for row filters in logical replication.
- ceb57afd3ce1 15.0 landed
-
Fix one of the tests introduced in commit 52e4f0cd47.
- cfb4e209ec15 15.0 landed
-
Allow specifying row filters for logical replication of tables.
- 52e4f0cd472d 15.0 landed
-
Move scanint8() to numutils.c
- cfc7191dfea3 15.0 cited
-
Replace Test::More plans with done_testing
- 549ec201d613 15.0 cited
-
Reduce relcache access in WAL sender streaming logical changes
- 6ce16088bfed 15.0 cited
-
Small cleanups related to PUBLICATION framework code
- c9105dd3660f 15.0 cited
-
Add a view to show the stats of subscription workers.
- 8d74fc96db5f 15.0 cited
-
Allow publishing the tables of schema.
- 5a2832465fd8 15.0 cited
-
Doc: improve documentation of CREATE/ALTER SUBSCRIPTION.
- 1882d6cca161 15.0 cited
-
Add PublicationTable and PublicationRelInfo structs
- 0c6828fa987b 15.0 cited
-
Remove unused argument "txn" in maybe_send_schema().
- 93d573d86571 15.0 cited
-
Add prepare API support for streaming transactions in logical replication.
- 63cf61cdeb7b 15.0 cited
-
Unify PostgresNode's new() and get_new_node() methods
- 201a76183e20 15.0 cited
-
Use l*_node() family of functions where appropriate
- 2b00db4fb0c7 15.0 cited
-
Add support for prepared transactions to built-in logical replication.
- a8fd13cab0ba 15.0 cited
-
Restore the portal-level snapshot after procedure COMMIT/ROLLBACK.
- ef9480509622 11.13 cited
-
Rename a parse node to be more general
- 91d1f2d30210 14.0 landed
-
Remove unused column atttypmod from initial tablesync query
- 4ad31bb2ef25 14.0 landed
-
SEARCH and CYCLE clauses
- 3696a600e229 14.0 cited
Attachments
- v69-0002-Row-filter-tab-auto-complete-and-pgdump.patch (application/octet-stream) patch v69-0002
- v69-0001-Allow-specifying-row-filter-for-logical-replication-.patch (application/octet-stream) patch v69-0001
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