mirror of
https://github.com/postgres/postgres.git
synced 2025-10-19 15:49:24 +03:00
Add optional pid parameter to pg_replication_origin_session_setup().
Commit 216a784829
introduced parallel apply workers, allowing multiple
processes to share a replication origin. To support this,
replorigin_session_setup() was extended to accept a pid argument
identifying the process using the origin.
This commit exposes that capability through the SQL interface function
pg_replication_origin_session_setup() by adding an optional pid parameter.
This enables multiple processes to coordinate replication using the same
origin when using SQL-level replication functions.
This change allows the non-builtin logical replication solutions to
implement parallel apply for large transactions.
Additionally, an existing internal error was made user-facing, as it can
now be triggered via the exposed SQL API.
Author: Doruk Yilmaz <doruk@mixrank.com>
Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Reviewed-by: Euler Taveira <euler@eulerto.com>
Discussion: https://postgr.es/m/CAMPB6wfe4zLjJL8jiZV5kjjpwBM2=rTRme0UCL7Ra4L8MTVdOg@mail.gmail.com
Discussion: https://postgr.es/m/CAE2gYzyTSNvHY1+iWUwykaLETSuAZsCWyryokjP6rG46ZvRgQA@mail.gmail.com
This commit is contained in:
@@ -26,6 +26,9 @@ SELECT pg_replication_origin_create('regress_test_decoding: regression_slot');
|
||||
-- ensure duplicate creations fail
|
||||
SELECT pg_replication_origin_create('regress_test_decoding: regression_slot');
|
||||
|
||||
-- ensure inactive origin cannot be set as session one if pid is specified
|
||||
SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot', -1);
|
||||
|
||||
--ensure deletions work (once)
|
||||
SELECT pg_replication_origin_create('regress_test_decoding: temp');
|
||||
SELECT pg_replication_origin_drop('regress_test_decoding: temp');
|
||||
|
Reference in New Issue
Block a user