Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wfSCb-005Sc8-0A for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2026 00:56:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wfSCZ-0047ES-2x for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2026 00:56:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wfSCZ-0047EJ-1a for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2026 00:56:19 +0000 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wfSCX-00000001Ge4-3fMI for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2026 00:56:18 +0000 Received: by mail-oi1-x22b.google.com with SMTP id 5614622812f47-489f3611e0cso9556b6e.1 for ; Thu, 02 Jul 2026 17:56:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783040177; cv=none; d=google.com; s=arc-20260327; b=QeO7v8VHsWI1/T/12XsB+c0ROZCLbCNL1ia+xb2b5zDCiskU7Dv5Wb0Jm5ssUTXz26 g+3jjQZMWkKvzPOBbJvPomz/gCnrCJGdmE4lpf98ru7QwwwuEGZYp+Pp9M6OSbBMIc8Z Jcmp0ZH1wC9XIeEsWLTQkoNVn2KCTtgm+H6e/5tgmtiMnavCyGAj/c94Mz9D9dXiO7He Xv8PMLR2ebIqkIrFSPxH2bvB0kYv0mmETQpeWGc5swuWmmNdBveu4BQLyHovPxQw5QDc Xug7ke4t7KzmU+CjSfSeaewyLoyyd4qEqgQtOBHoSzGpt4IjpGDZwDUXe7C5AoYDb2g1 tcTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=wm5E7eNE02vadLW5Fr0cEFtFnWn+KO0Oo08bi+SumYE=; fh=zbJ0mGOUdWmYQATwO9b+nJXN2C9vhnhWlXh4Wou3aDU=; b=lMeceZhHSt/tinFllqKh/5mz8AxWYVFabgNC/hi5K43vS8DuZsMSE5+yihOoa2RGDV HEiRyYS3dS2/M0l9vJ3+lGT+aaOJMBsV4FEHofH+wNJUpwSygsl7KTRKbv1ZO62ctzA1 JOkXGyibUk98kaann3Xqrv7pJKDUCa7fn2klwxoEl3WAA/rzCJOBdhGwOWu1KrdF/Xf3 Fy4tMsEjNjNOGRtMxf4Bm2zavuLxfctI4ZYcb0ke0XYzzkLHw/vzdCTnPwMOqjaB4kOg zqiqaLDN1qptBRrtzN64le7izItsMRiTWKpbOe+TNa3Tond6CNJY/8qc7l8zZqIhlMh+ tfdA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783040177; x=1783644977; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wm5E7eNE02vadLW5Fr0cEFtFnWn+KO0Oo08bi+SumYE=; b=NobILH8hkzMRWAJmFKR+G5Q21vm59WVR/0nO21/minrID8qHO8OEYWMvPZal4Drnvs YRNMgRn4PxlnQs7dEXnqKhCzh4z3TSX3CGXR4jPMSJuk1giy4UOtpAXol5Sd7mzn4okh npVPxK1S1s3anfeRf/lNzCim+Jhv3RB5QNgwWMOd8hNxFrhokrAA6A7BsIHf6IYiWLrW uu1WyR3ku/LP3CzvC+0kUpHS1ErXk+lotMfKCZGOXksmA75DqsWqAAZsB2i6hV/IOfV5 vc0AYCTL6amf3R57eIxAFKQB4qprThaCgEvbixO1lEfjVNxLEG8M/9ESstPo08BRJnty Yj6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783040177; x=1783644977; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wm5E7eNE02vadLW5Fr0cEFtFnWn+KO0Oo08bi+SumYE=; b=bY5W24z/wIeTWJnb+GQpoLrznlsgIqc8+zp43/GnItfS+nTSmuNVZ+a+HD8Xf8/bsf IEbamWFuKNUlM1GYd589SrmCiNKs6wIn+PWnPSmm3Shel/U5ASwNIpkdPJARt64f2ewd Zw39pxjh/HGk4vjSBfWnixkjsWai04XbByTCyagiz5FUltO453ccX2bn6v6sfzrdLKWw 9ymilxZK8PWd/HkqtzIIP2u3xre7Yx5jfGjr7NFaL91XEu4n4HtozX0Av7CgNAXdVc0p 0ZPZql5E7bNMpiEgLw1GFRdImPVbH6mxlWS/gYcjSGbE98oaZ34zgNuOrk9OeNU1Ogv6 9uEg== X-Forwarded-Encrypted: i=1; AFNElJ/sXQ3FDSCv2dNhy6NgBZdA8w3UrRFdB7UWZDkYmaN9uxdcrQcCHrU4ERI/7yeTtyKgWwI1lXzmYFDEouxb@lists.postgresql.org X-Gm-Message-State: AOJu0YyoNJSzcNeC06LEiiZYEjjq63A+TB2XSpEjFBgxBKUO6EVS/Ta2 LttWPXVkVCw1iHckLCBrpbvrJWlHod9Pr4LtBisrkUBjHHVG+LS5xANepfWuFpFVRRssvWanTjl fu3UqnPGlsgKZTjWOtjOkydbErJiCO5/6OEDD3Co= X-Gm-Gg: AfdE7ckc0RtYiGYTPdKQoxyEWD8VuqGamAdGUrcqOqfO3wL5H7Rf0KpAOyAHFALXzT2 LmtpFfzcGutgasLWsXMXNM5kn6socq+aZNQXM7z9FxnH2TvpOLJOfUcL6dU8loB+YJ5ttsMRI+P ml+Hsh6kA+kpIQ+DYr82gMQEhqnbHYiQT/rFMyXEmnsCwnAnEF9xni02zq7UF58cT+HyZmGykk5 ZIxbvKzql6TWjVBWQOpUqNQPHzOmhdSbto380AT/Z4QMgjkXAr4E0p/AZhCOsm3nqrsS24qT7da fFaxMskgo1W9VrDZNq4gxAQcFpGUUbVh/G6PJzNakvfpRc6cqsYkSbt+4xcmAVpppCln1ZukVKj 5FZAFeOi9NvYpJyR0qUhG X-Received: by 2002:a05:6808:6f8e:b0:495:d7ec:b6be with SMTP id 5614622812f47-4960ee33213mr5942617b6e.18.1783040177096; Thu, 02 Jul 2026 17:56:17 -0700 (PDT) MIME-Version: 1.0 References: <202602051012.qer26xklakqb@alvherre.pgsql> <86088202-7ce1-4361-b4ee-8703b9e64dd6@uni-muenster.de> <061c739f-1ebd-41e8-b49e-8159908f644c@uni-muenster.de> <0514f233-5f77-469b-88c3-e8eb7487afc2@uni-muenster.de> <81297eea-8a5c-4cdc-9c49-0524e3968b62@uni-muenster.de> <67fcc68a-fce0-42b8-863f-8db5509d1790@uni-muenster.de> <93f10aa2-4c04-45dd-9810-98c7d2dd9b34@uni-muenster.de> In-Reply-To: <93f10aa2-4c04-45dd-9810-98c7d2dd9b34@uni-muenster.de> From: Fujii Masao Date: Fri, 3 Jul 2026 09:56:04 +0900 X-Gm-Features: AVVi8Ceg-Uw3r-fFsllyW20quvcvalpcasVZ4DmKMiM_XmaB2mIRjNdJHAA9cfc Message-ID: Subject: Re: Truncate logs by max_log_size To: Jim Jones Cc: Maxym Kharchenko , Kirill Reshke , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Fujii Masao , Kirill Gavrilov , "Andrey M. Borodin" , Euler Taveira , pgsql-hackers@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, Jul 3, 2026 at 3:47=E2=80=AFAM Jim Jones wrote: > > Hi Fujii > > On 02/07/2026 17:49, Fujii Masao wrote: > > I reviewed the patch again and made a few additional changes. The updat= ed > > patch is attached. Barring any objections, I'm thinking to commit it. > > > The changes seem reasonable to me. > Thanks for taking care of it! Thanks for the review! I've pushed the patch. While working on it, I found a few possible follow-up improvements. (1) When log_statement is enabled, executing a prepared statement logs the prepared query in a DETAIL message. For example: =3D# SET log_statement_max_length TO 10; =3D# PREPARE test AS SELECT * FROM pgbench_accounts WHERE aid =3D $1; LOG: statement: PREPARE te =3D# EXECUTE test(1); LOG: statement: EXECUTE te DETAIL: prepare: PREPARE test AS SELECT * FROM pgbench_accounts WHERE aid =3D $1; Should log_statement_max_length also apply to such query string in the DETAIL message? (2) When a bind parameter is truncated by log_parameter_max_length, an ellipsis (...) is appended: =3D# SET log_parameter_max_length TO 5; =3D# SELECT $1::text \bind 'abcdefghijk' \g LOG: execute : SELECT $1::text DETAIL: Parameters: $1 =3D 'abcde...' Would it make sense for log_statement_max_length to append an ellipsis as well, so that users can easily tell when a statement has been truncated? (3) + query_len =3D strlen(query); truncate_query_log() uses strlen() only to determine whether the query exceeds log_statement_max_length. Since the query can be very large, would it be better to use strnlen(query, log_statement_max_length + MAX_MULTIBYTE_CHAR_LEN) instead, to avoid scanning the entire string? Regards, --=20 Fujii Masao