| From: | Fujii Masao <fujii(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Set notice receiver before libpq connection startup completes |
| Date: | 2026-05-22 15:27:43 |
| Message-ID: | E1wQRmp-000f4U-1O@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Set notice receiver before libpq connection startup completes
Commit 112faf1378e added custom notice receivers for replication,
postgres_fdw, and dblink so that remote NOTICE, WARNING, and similar
messages are reported via ereport(). However, those notice receivers were
installed only after libpqsrv_connect() and libpqsrv_connect_params()
returned, by which point libpq connection startup had already completed.
As a result, messages emitted during connection establishment could be
missed.
This commit fixes the issue by splitting libpqsrv_connect() and
libpqsrv_connect_params() into separate start and complete phases:
libpqsrv_connect_start(), libpqsrv_connect_params_start(), and
libpqsrv_connect_complete(). This allows callers to perform
per-connection setup, such as installing a notice receiver, after the
connection has been started but before startup completes.
Note that callers of libpqsrv_connect_start() and
libpqsrv_connect_params_start() must still call
libpqsrv_connect_complete(), even if the start function returns NULL, so
that any external FDs reserved during startup are released properly.
Author: Chao Li <lic(at)highgo(dot)com>
Reviewed-by: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Reviewed-by: Vignesh C <vignesh21(at)gmail(dot)com>
Reviewed-by: Rafia Sabih <rafia(dot)pghackers(at)gmail(dot)com>
Discussion: https://postgr.es/m/A2B8B7DE-C119-492F-A9FA-14CF86849777@gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/06a5c3cdef024630aef0992bb7b471459aa2b70f
Modified Files
--------------
contrib/dblink/dblink.c | 17 +++---
contrib/postgres_fdw/connection.c | 13 +++--
.../libpqwalreceiver/libpqwalreceiver.c | 12 ++--
src/include/libpq/libpq-be-fe-helpers.h | 65 ++++++++++++++++------
4 files changed, 70 insertions(+), 37 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-05-22 19:04:40 | pgsql: Improve pg_stat_wal_receiver for CONNECTING status |
| Previous Message | Fujii Masao | 2026-05-22 15:02:00 | pgsql: Prevent setting NO INHERIT on partitioned NOT NULL constraints |