postgres.git / summary / log / commit / refs

commit    6a2edf2a1e6d0c277b7ddf9604fe5b83766cc8e1
Author:   Fujii Masao <fujii@postgresql.org>
Date:     Mon Sep 28 09:52:33 2026 +0000

    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 <mmoncure@gmail.com>
    Author: Vignesh C <vignesh21@gmail.com
    Reviewed-by: Merlin Moncure <mmoncure@gmail.com>
    Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
    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 [parent: a936ebd9f9f6]