From 23da62e98a7c33977134e8d0318d109fca3a8954 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Mon, 28 Sep 2026 18:52:33 +0900 Subject: [PATCH] Prevent remote notices from repeating local query details in logs Since 112faf1378ee, NOTICE, WARNING, and similar messages received through dblink, postgres_fdw, and replication connections have been logged with ereport(LOG). With the default log_min_error_statement setting, each such log entry can also include the current local SQL statement. An active error-context callback can add local CONTEXT information as well. Repeating these fields for every remote message increases log volume and processing overhead. Use errhidestmt() and errhidecontext() when logging these messages to prevent the local STATEMENT and CONTEXT fields, when present, from being repeated for each remote message in the server log. Reported-by: Merlin Moncure Author: Vignesh C Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/CAHyXU0yDwOYkWpRi=gtpDwjBxVqeaezgkgZLRWm2p1_FgaiPFQ@mail.gmail.com Backpatch-though: 19 --- src/include/libpq/libpq-be-fe-helpers.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/include/libpq/libpq-be-fe-helpers.h b/src/include/libpq/libpq-be-fe-helpers.h index cff68cd1c37..b0949280ce0 100644 --- a/src/include/libpq/libpq-be-fe-helpers.h +++ b/src/include/libpq/libpq-be-fe-helpers.h @@ -498,8 +498,15 @@ libpqsrv_notice_receiver(void *arg, const PGresult *res) if (len > 0 && message[len - 1] == '\n') len--; + /* + * Omit the local statement and context from each remote message. They can + * help identify the caller, but repeating them for every message could + * greatly increase log volume. + */ ereport(LOG, - errmsg_internal("%s: %.*s", prefix, len, message)); + errmsg_internal("%s: %.*s", prefix, len, message), + errhidestmt(true), + errhidecontext(true)); } #define PGresult libpqsrv_PGresult