Re: row filtering for logical replication

Peter Smith <smithpb2250@gmail.com>

From: Peter Smith <smithpb2250@gmail.com>
To: Ajin Cherian <itsajin@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Euler Taveira <euler@eulerto.com>, Greg Nancarrow <gregn4422@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, vignesh C <vignesh21@gmail.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, Dilip Kumar <dilipbalaut@gmail.com>, Rahila Syed <rahilasyed90@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Önder Kalacı <onderkalaci@gmail.com>, japin <japinli@hotmail.com>, Michael Paquier <michael@paquier.xyz>, David Steele <david@pgmasters.net>, Craig Ringer <craig@2ndquadrant.com>, Amit Langote <amitlangote09@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-12-16T22:40:43Z
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 →
  1. Release cache tuple when no longer needed

  2. Add some additional tests for row filters in logical replication.

  3. Fix one of the tests introduced in commit 52e4f0cd47.

  4. Allow specifying row filters for logical replication of tables.

  5. Move scanint8() to numutils.c

  6. Replace Test::More plans with done_testing

  7. Reduce relcache access in WAL sender streaming logical changes

  8. Small cleanups related to PUBLICATION framework code

  9. Add a view to show the stats of subscription workers.

  10. Allow publishing the tables of schema.

  11. Doc: improve documentation of CREATE/ALTER SUBSCRIPTION.

  12. Add PublicationTable and PublicationRelInfo structs

  13. Remove unused argument "txn" in maybe_send_schema().

  14. Add prepare API support for streaming transactions in logical replication.

  15. Unify PostgresNode's new() and get_new_node() methods

  16. Use l*_node() family of functions where appropriate

  17. Add support for prepared transactions to built-in logical replication.

  18. Restore the portal-level snapshot after procedure COMMIT/ROLLBACK.

  19. Rename a parse node to be more general

  20. Remove unused column atttypmod from initial tablesync query

  21. SEARCH and CYCLE clauses

Attachments

PSA the v47* patch set.

Main differences from v46:
0. Rebased to HEAD
1. Addressed multiple review comments

~~

Details:

v47-0001 (main)
- Quick loop exit if no filter for all pubactions [Amit 14/12] #1
- Remove duplicated comment [Amit 14/12] #2
- Remove code block parens [Amit 14/12] #3
- GetTransformedWhereClause add function comment [Amit 14/12] #2,
[Greg 15/12] #3
- GetTransformedWhereClause change variable names [Amit 14/12] #3
- Commit comment wording [Greg 15/12] #2
- Fix incomplete comment [Greg 15/12] #4
- Wording of error message [Greg 15/12] #5
- Wording in tablesync comment [Greg 15/2] #6
- PG docs for FOR ALL TABLES
- Added regression tests for aggregate functions

v47-0002 (validation)
- Remove EXPR_KIND_PUBLICATION_WHERE [Amit 14/12] #1
- Refactor function for simple nodes [Amit 14/12] #4
- Fix case of error message [Greg 15/12] #1
- Cleanup code not using InvalidAttrNumber [Greg 15/12] #2

v47-0003 (new/old tuple)
- No change

v47-0004 (tab-complete and dump)
- No change

v47-0005 (for all tables)
- Fix comment in tablesync [Greg 15/12] #1
- Fix comment alignment [Greg 15/12] #2
- Add support for ALL TABLES IN SCHEMA [Amit 14/12]
- Use a unified SQL in the tablesync COPY [Amit 14/12]
- Quick loop exits if no filter for all pubactions [Amit 14/12] #1
- Added new TAP test case for FOR ALL TABLES
- Added new TAP test case for ALL TABLES IN SCHEMA
- Updated commit comment

------
[Amit 14/12] https://www.postgresql.org/message-id/CAA4eK1JdLzJEmxxzEEYAOg41Om3Y88uL%2B7CgXdvnAaj7hkw8BQ%40mail.gmail.com
[Amit 14/12] https://www.postgresql.org/message-id/CAA4eK1%2BaiyjD4C1gohBZyZivrMruCE%3D9Mgmgtaq1gFvfRBU-wA%40mail.gmail.com
[Greg 15/12] https://www.postgresql.org/message-id/CAJcOf-dFo_kTroR2_k1x80TqN%3D-3oZC_2BGYe1O6e5JinrLKYg%40mail.gmail.com

Kind Regards,
Peter Smith.
Fujitsu Australia