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 1whVfc-000GnK-2K for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 17:02:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whVfZ-008FYg-1j for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 17:02:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1whVfZ-008FYY-0Q for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 17:02:45 +0000 Received: from udcm-wwu2.uni-muenster.de ([128.176.118.28]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1whVfW-00000000J8I-3fUP for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 17:02:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uni-muenster.de; i=@uni-muenster.de; q=dns/txt; s=uniout; t=1783530164; x=1815066164; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=MtC073CemC7B7DxaouOWkcXMUEWhbQ7dEiAC2Y+ny24=; b=VgoXAoRUnN0vCi2noQ+dHFv26CcaQz9Kba0lOg175ytHh9bqJJ2VdXlH dtHei8C4cmGLUweqorOJ4mOj22ZRpyUOKUW3x6Mrl7ndDST+lcB70ZOEx Iw7hAKM+3uiLElGgglgFPSwl4RuBoIs+rw95PuOhubMElY3hzd5oUQQo+ tGfXEswKN12a7mAgmVpc+lkr88L+1dYLorUNi6zj9n0Hk22KDtBumdHcQ 0bUMDjyI3A3fK2Q19E8rQ5mBJS5q3fLFsl/WN9AJ1YsBPKTfIiCD/TVOl UucnnGfIiTjP8tQOEpPIgmMf/LDC2XeHspCUFmblEoz3wp7wMLNQ5VVwR w==; X-CSE-ConnectionGUID: BsfOq3cpRLq/VFZdGncocQ== X-CSE-MsgGUID: v7Us3ulBRCGvh6yd/6if/A== X-IronPort-AV: E=Sophos;i="6.25,153,1779141600"; d="scan'208,223";a="400385020" Received: from secmail.uni-muenster.de ([128.176.118.4]) by UDCM-RELAY2.UNI-MUENSTER.DE with ESMTP; 08 Jul 2026 19:02:43 +0200 Received: from [128.176.190.180] (wwuit-jones-w.wwu.de [128.176.190.180]) by SECMAIL.UNI-MUENSTER.DE (Postfix) with ESMTPSA id 1682E20ADF02; Wed, 8 Jul 2026 19:02:41 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------ri4UG6WNS5WGZJc613OuU5yJ" Message-ID: <190ba1a8-69f4-4c8b-99cb-aa4691dece95@uni-muenster.de> Date: Wed, 8 Jul 2026 19:02:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Truncate logs by max_log_size To: Fujii Masao 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 References: <202602051012.qer26xklakqb@alvherre.pgsql> <81297eea-8a5c-4cdc-9c49-0524e3968b62@uni-muenster.de> <67fcc68a-fce0-42b8-863f-8db5509d1790@uni-muenster.de> <93f10aa2-4c04-45dd-9810-98c7d2dd9b34@uni-muenster.de> Content-Language: en-US From: Jim Jones In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ri4UG6WNS5WGZJc613OuU5yJ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi Fujii On 03.07.26 17:46, Fujii Masao wrote: > On Fri, Jul 3, 2026 at 4:34 PM Jim Jones wrote: >> +1 >> Nice additions -- the feature gap is obvious, IMHO. >> >> Are you planning to work on it? I'm drowning in work right now and can >> only jump on it next week. > > I don't have plans to work on those at the moment, so please feel free > to take them on if you have time! > > >> I'm not so sure about this one. At this point, isn't "query" already \0 >> terminated? I'm also wondering if it could affect pg_mbcliplen() down >> the road, since strnlen() can return a different value >> (log_statement_max_length + MAX_MULTIBYTE_CHAR_LEN) on large queries -- >> not tested yet. > > Yes, "query" should already be NUL-terminated here. The reason for > using strnlen() is not to handle an unterminated string, but to avoid > scanning the entire query when it's very large and we only need to > know whether it exceeds log_statement_max_length. > > I think it's fine to pass the bounded length to pg_mbcliplen(). > It only needs enough input to find a multibyte-safe clipping point at > or before log_statement_max_length, i.e., it doesn't need the full > query length. The extra MAX_MULTIBYTE_CHAR_LEN bytes provide enough > lookahead to handle a multibyte character boundary correctly. > > - query_len = strlen(query); > + query_len = strnlen(query, > + (size_t) log_statement_max_length + MAX_MULTIBYTE_CHAR_LEN); Attached 0001 addressing the points you made: * appending ellipsis to the query to indicate truncation (docs and tests also updated accordingly). A side effect of this change is that setting the parameter to 0 logs an ellipsis, which is not zero in length, but is arguably correct, as it indicates that the whole query has been truncated - just noting. * use of strnlen to avoid scanning the whole query. * truncation of prepared statements in DETAIL. While working on this I noticed some redundant checks to call truncate_query_log(), e.g. in exec_execute_message(): if (log_statement_max_length >= 0) truncated_source = truncate_query_log(sourceText); truncate_query_log() already returns NULL when query logging is disabled or when no truncation is needed: /* Truncation is disabled when the limit is negative */ if (!query || log_statement_max_length < 0) return NULL; So I'd argue that we don't need any checks in the caller. - char *truncated_source = NULL; - - if (log_statement_max_length >= 0) - truncated_source = truncate_query_log(sourceText); + char *truncated_source = truncate_query_log(sourceText); 0002 attached does this. Thoughts? BTW, should I open a new CF entry for this? Best, Jim --------------ri4UG6WNS5WGZJc613OuU5yJ Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Improve-log_statement_max_length-truncation.patch" Content-Disposition: attachment; filename*0="v1-0001-Improve-log_statement_max_length-truncation.patch" Content-Transfer-Encoding: base64 RnJvbSBhNDdjY2FmYzMzNGU4YjUwOGYxMTdhZmRmYzVjZTMyNjZlMGVkOGZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFdlZCwgOCBKdWwgMjAyNiAxODoyOTowOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMS8yXSBJbXByb3ZlIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCB0cnVuY2F0 aW9uCgpBcHBseSBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggY29uc2lzdGVudGx5IHdoZW4g bG9nZ2luZyBwcmVwYXJlZApzdGF0ZW1lbnRzLiBQcmV2aW91c2x5LCB0aGUgcHJlcGFyZWQg cXVlcnkgZW1pdHRlZCBpbiB0aGUgREVUQUlMCm1lc3NhZ2UgZm9yIEVYRUNVVEUgd2FzIG5v dCB0cnVuY2F0ZWQsIGV2ZW4gdGhvdWdoIHRoZSBjb3JyZXNwb25kaW5nCnN0YXRlbWVudCBs b2dnZWQgYnkgbG9nX3N0YXRlbWVudCB3YXMuCgpBbHNvIGFwcGVuZCBhbiBlbGxpcHNpcyB0 byB0cnVuY2F0ZWQgc3RhdGVtZW50cywgc28gaXQgaXMgaW1tZWRpYXRlbHkKYXBwYXJlbnQg d2hlbiBhIHN0YXRlbWVudCBoYXMgYmVlbiB0cnVuY2F0ZWQuCgpUaGlzIGFsc28gYXZvaWQg c2Nhbm5pbmcgdGhlIGVudGlyZSBxdWVyeSBzdHJpbmcgd2hlbiBkZXRlcm1pbmluZwppZiB0 cnVuY2F0aW9uIGlzIG5lZWRlZCBieSB1c2luZyBzdHJubGVuKCkgaW5zdGVhZCBvZiBzdHJs ZW4oKSBpbgp0cnVuY2F0ZV9xdWVyeV9sb2coKS4KCkF1dGhvcjogSmltIEpvbmVzIDxqaW0u am9uZXNAdW5pLW11ZW5zdGVyLmRlPgpDby1hdXRob3JlZC1ieTogRnVqaWkgTWFzYW8gPG1h c2FvLmZ1amlpQGdtYWlsLmNvbT4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5j ICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKystLS0KIC4uLi90LzAxNF9sb2dfc3RhdGVt ZW50X21heF9sZW5ndGgucGwgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKy0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZp Zy5zZ21sCmluZGV4IDkxNzJhNGM1Yzk1Li5mNDc4MjI2MWUxNyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApA QCAtODUyNSw3ICs4NTI1LDkgQEAgbG9nX2xpbmVfcHJlZml4ID0gJyVtIFslcF0gJXEldUAl ZC8lYSAnCiAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1sb2ctbWluLWR1cmF0aW9uLXN0 YXRlbWVudCIvPiwKICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWxvZy1taW4tZHVyYXRp b24tc2FtcGxlIi8+LCBvcgogICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbG9nLXRyYW5z YWN0aW9uLXNhbXBsZS1yYXRlIi8+Ci0gICAgICAgIGlzIHRydW5jYXRlZCB0byBhdCBtb3N0 IHRoaXMgbWFueSBieXRlcy4KKyAgICAgICAgaXMgdHJ1bmNhdGVkIHRvIGF0IG1vc3QgdGhp cyBtYW55IGJ5dGVzLiBXaGVuIGEgc3RhdGVtZW50IGlzCisgICAgICAgIHRydW5jYXRlZCwg YW4gZWxsaXBzaXMgKDxsaXRlcmFsPi4uLjwvbGl0ZXJhbD4pIGlzIGFwcGVuZGVkIHRvCisg ICAgICAgIGluZGljYXRlIHRoYXQgdHJ1bmNhdGlvbiBoYXMgb2NjdXJyZWQuCiAgICAgICAg IEEgdmFsdWUgb2YgemVybyBjYXVzZXMgc3RhdGVtZW50cyB0byBiZSBsb2dnZWQgd2l0aCBh biBlbXB0eSBib2R5LgogICAgICAgICA8bGl0ZXJhbD4tMTwvbGl0ZXJhbD4gKHRoZSBkZWZh dWx0KSBsb2dzIHN0YXRlbWVudHMgaW4gZnVsbC4KICAgICAgICAgSWYgdGhpcyB2YWx1ZSBp cyBzcGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQgaXMgdGFrZW4gYXMgYnl0ZXMuCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKaW5kZXggY2UxOGRmODIwY2QuLmIwOTQ3ZmQ3Mjk4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCkBAIC0yNTUzLDggKzI1NTMsOSBAQCBjaGVja19sb2dfZHVyYXRpb24oY2hh ciAqbXNlY19zdHIsIGJvb2wgd2FzX2xvZ2dlZCkKICAqIHRydW5jYXRlX3F1ZXJ5X2xvZwog ICoJCVRydW5jYXRlIHF1ZXJ5IHN0cmluZyBpZiBuZWVkZWQgZm9yIGxvZ2dpbmcKICAqCi0g KiBSZXR1cm5zIGEgcGFsbG9jJ2QgdHJ1bmNhdGVkIGNvcHkgaWYgdHJ1bmNhdGlvbiBpcyBu ZWVkZWQsCi0gKiBvciBOVUxMIGlmIG5vIHRydW5jYXRpb24gaXMgcmVxdWlyZWQuCisgKiBS ZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgcXVlcnkgdHJ1bmNhdGVkIGZvciBsb2dn aW5nLCB3aXRoIGFuCisgKiBlbGxpcHNpcyBhcHBlbmRlZCBpZiB0cnVuY2F0aW9uIG9jY3Vy cywgb3IgTlVMTCBpZiBubyB0cnVuY2F0aW9uIGlzCisgKiByZXF1aXJlZC4KICAqLwogc3Rh dGljIGNoYXIgKgogdHJ1bmNhdGVfcXVlcnlfbG9nKGNvbnN0IGNoYXIgKnF1ZXJ5KQpAQCAt MjU2Nyw3ICsyNTY4LDcgQEAgdHJ1bmNhdGVfcXVlcnlfbG9nKGNvbnN0IGNoYXIgKnF1ZXJ5 KQogCWlmICghcXVlcnkgfHwgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIDwgMCkKIAkJcmV0 dXJuIE5VTEw7CiAKLQlxdWVyeV9sZW4gPSBzdHJsZW4ocXVlcnkpOworCXF1ZXJ5X2xlbiA9 IHN0cm5sZW4ocXVlcnksIChzaXplX3QpIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCArIE1B WF9NVUxUSUJZVEVfQ0hBUl9MRU4pOwogCiAJLyoKIAkgKiBObyBuZWVkIHRvIGFsbG9jYXRl IGEgdHJ1bmNhdGVkIGNvcHkgaWYgdGhlIHF1ZXJ5IGlzIHNob3J0ZXIgdGhhbgpAQCAtMjU3 OCw5ICsyNTc5LDEwIEBAIHRydW5jYXRlX3F1ZXJ5X2xvZyhjb25zdCBjaGFyICpxdWVyeSkK IAogCS8qIFRydW5jYXRlIGF0IGEgbXVsdGlieXRlIGNoYXJhY3RlciBib3VuZGFyeSAqLwog CXRydW5jYXRlZF9sZW4gPSBwZ19tYmNsaXBsZW4ocXVlcnksIHF1ZXJ5X2xlbiwgbG9nX3N0 YXRlbWVudF9tYXhfbGVuZ3RoKTsKLQl0cnVuY2F0ZWRfcXVlcnkgPSAoY2hhciAqKSBwYWxs b2ModHJ1bmNhdGVkX2xlbiArIDEpOworCXRydW5jYXRlZF9xdWVyeSA9IChjaGFyICopIHBh bGxvYyh0cnVuY2F0ZWRfbGVuICsgNCk7CiAJbWVtY3B5KHRydW5jYXRlZF9xdWVyeSwgcXVl cnksIHRydW5jYXRlZF9sZW4pOwotCXRydW5jYXRlZF9xdWVyeVt0cnVuY2F0ZWRfbGVuXSA9 ICdcMCc7CisJbWVtY3B5KHRydW5jYXRlZF9xdWVyeSArIHRydW5jYXRlZF9sZW4sICIuLi4i LCAzKTsKKwl0cnVuY2F0ZWRfcXVlcnlbdHJ1bmNhdGVkX2xlbiArIDNdID0gJ1wwJzsKIAog CXJldHVybiB0cnVuY2F0ZWRfcXVlcnk7CiB9CkBAIC0yNjA4LDcgKzI2MTAsOSBAQCBlcnJk ZXRhaWxfZXhlY3V0ZShMaXN0ICpyYXdfcGFyc2V0cmVlX2xpc3QpCiAJCQlwc3RtdCA9IEZl dGNoUHJlcGFyZWRTdGF0ZW1lbnQoc3RtdC0+bmFtZSwgZmFsc2UpOwogCQkJaWYgKHBzdG10 KQogCQkJewotCQkJCWVycmRldGFpbCgicHJlcGFyZTogJXMiLCBwc3RtdC0+cGxhbnNvdXJj ZS0+cXVlcnlfc3RyaW5nKTsKKwkJCQljaGFyICp0cnVuY2F0ZWRfc3RtdCA9IHRydW5jYXRl X3F1ZXJ5X2xvZyhwc3RtdC0+cGxhbnNvdXJjZS0+cXVlcnlfc3RyaW5nKTsKKworCQkJCWVy cmRldGFpbCgicHJlcGFyZTogJXMiLCB0cnVuY2F0ZWRfc3RtdCA/IHRydW5jYXRlZF9zdG10 IDogcHN0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQkJcmV0dXJuIDA7CiAJ CQl9CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDE0 X2xvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aC5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9t aXNjL3QvMDE0X2xvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aC5wbAppbmRleCBiMWNlNjA2OGY1 ZC4uMTIzOWVmZjRhOTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNj L3QvMDE0X2xvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aC5wbAorKysgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfbWlzYy90LzAxNF9sb2dfc3RhdGVtZW50X21heF9sZW5ndGgucGwKQEAgLTIy LDcgKzIyLDcgQEAgJG5vZGUtPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgogCVNFVCBsb2dfc3Rh dGVtZW50X21heF9sZW5ndGggVE8gMjA7CiAJU0VMRUNUICcxMjM0NTY3ODlBQkNERUYnOyIp Owotb2soJG5vZGUtPmxvZ19jb250YWlucyhxci9zdGF0ZW1lbnQ6IFNFTEVDVCAnMTIzNDU2 Nzg5QUJDJC9tLCAkbG9nX29mZnNldCksCitvaygkbm9kZS0+bG9nX2NvbnRhaW5zKHFyL3N0 YXRlbWVudDogU0VMRUNUICcxMjM0NTY3ODlBQkMuLi4kL20sICRsb2dfb2Zmc2V0KSwKIAki QVNDSUkgcXVlcnkgdHJ1bmNhdGVkIGF0IDIwIGJ5dGVzIik7CiAKICMgVmVyaWZ5IC0xIGxv Z3Mgc3RhdGVtZW50IGluIGZ1bGwgKGNsb3NpbmcgcXVvdGUgbXVzdCBiZSBwcmVzZW50KS4K QEAgLTUxLDcgKzUxLDcgQEAgU0tJUDoKIAkJU0VUIGNsaWVudF9lbmNvZGluZyBUTyAnVVRG OCc7CiAJCVNFVCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggVE8gMTE7CiAJCSRtYnF1ZXJ5 Iik7Ci0Jb2soJG5vZGUtPmxvZ19jb250YWlucyhxci9zdGF0ZW1lbnQ6IFNFTEVDVCAnQUEk L20sICRsb2dfb2Zmc2V0KSwKKwlvaygkbm9kZS0+bG9nX2NvbnRhaW5zKHFyL3N0YXRlbWVu dDogU0VMRUNUICdBQS4uLiQvbSwgJGxvZ19vZmZzZXQpLAogCQkibXVsdGlieXRlIHRydW5j YXRpb24gYXQgY2hhcmFjdGVyIGJvdW5kYXJ5Iik7CiB9CiAKQEAgLTYyLDggKzYyLDggQEAg JG5vZGUtPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgogCVNFVCBsb2dfc3RhdGVtZW50X21heF9s ZW5ndGggVE8gMDsKIAlTRUxFQ1QgJzEyMzQ1Njc4OUFCQ0RFRic7Iik7Ci1vaygkbm9kZS0+ bG9nX2NvbnRhaW5zKHFyL3N0YXRlbWVudDpccyokL20sICRsb2dfb2Zmc2V0KSwKLQkiMCBs b2dzIGFuIGVtcHR5IHN0YXRlbWVudCBib2R5Iik7Citvaygkbm9kZS0+bG9nX2NvbnRhaW5z KHFyL3N0YXRlbWVudDogLi4uXHMqJC9tLCAkbG9nX29mZnNldCksCisJIjAgbG9ncyBzdGF0 ZW1lbnQgYm9keSB3aXRoIGVsbGlwc2lzIik7CiAKICMgVmVyaWZ5IHRydW5jYXRpb24gdmlh IHRoZSBleHRlbmRlZCBxdWVyeSBwcm90b2NvbCAoZXhlY3V0ZSBtZXNzYWdlKS4KICMgV2l0 aCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggPSAyMCwgYSAyNC1ieXRlIHF1ZXJ5IHNob3Vs ZCBlbmQKQEAgLTc1LDcgKzc1LDcgQEAgJG5vZGUtPnBzcWwoCiAJU0VUIGxvZ19zdGF0ZW1l bnRfbWF4X2xlbmd0aCBUTyAyMDsKIAlTRUxFQ1QgJzEyMzQ1Njc4OUFCQ0RFRicgXFxiaW5k IFxcZyIpOwogb2soICRub2RlLT5sb2dfY29udGFpbnMoCi0JCXFyL2V4ZWN1dGUgPHVubmFt ZWQ+OiBTRUxFQ1QgJzEyMzQ1Njc4OUFCQyQvbSwgJGxvZ19vZmZzZXQpLAorCQlxci9leGVj dXRlIDx1bm5hbWVkPjogU0VMRUNUICcxMjM0NTY3ODlBQkMuLi4kL20sICRsb2dfb2Zmc2V0 KSwKIAkiZXh0ZW5kZWQgcHJvdG9jb2wgZXhlY3V0ZSB0cnVuY2F0ZWQgYXQgMjAgYnl0ZXMi KTsKIAogIyBWZXJpZnkgZXh0ZW5kZWQgcHJvdG9jb2wgYWxzbyByZXNwZWN0cyAtMSAobm8g dHJ1bmNhdGlvbjsgY2xvc2luZyBxdW90ZQpAQCAtMTAyLDE0ICsxMDIsMzUgQEAgJG5vZGUt PnBzcWwoCiAJU0VUIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCBUTyAyMDsKIAlTRUxFQ1Qg JzEyMzQ1Njc4OUFCQ0RFRicgXFxiaW5kIFxcZyIpOwogb2soICRub2RlLT5sb2dfY29udGFp bnMoCi0JCXFyL3BhcnNlIDx1bm5hbWVkPjogU0VMRUNUICcxMjM0NTY3ODlBQkMkL20sICRs b2dfb2Zmc2V0KSwKKwkJcXIvcGFyc2UgPHVubmFtZWQ+OiBTRUxFQ1QgJzEyMzQ1Njc4OUFC Qy4uLiQvbSwgJGxvZ19vZmZzZXQpLAogCSJwYXJzZSBkdXJhdGlvbiBlbnRyeSB0cnVuY2F0 ZWQiKTsKIG9rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKAotCQlxci9iaW5kIDx1bm5hbWVkPjog U0VMRUNUICcxMjM0NTY3ODlBQkMkL20sICRsb2dfb2Zmc2V0KSwKKwkJcXIvYmluZCA8dW5u YW1lZD46IFNFTEVDVCAnMTIzNDU2Nzg5QUJDLi4uJC9tLCAkbG9nX29mZnNldCksCiAJImJp bmQgZHVyYXRpb24gZW50cnkgdHJ1bmNhdGVkIik7CiBvayggJG5vZGUtPmxvZ19jb250YWlu cygKLQkJcXIvZXhlY3V0ZSA8dW5uYW1lZD46IFNFTEVDVCAnMTIzNDU2Nzg5QUJDJC9tLCAk bG9nX29mZnNldCksCisJCXFyL2V4ZWN1dGUgPHVubmFtZWQ+OiBTRUxFQ1QgJzEyMzQ1Njc4 OUFCQy4uLiQvbSwgJGxvZ19vZmZzZXQpLAogCSJleGVjdXRlIGR1cmF0aW9uIGVudHJ5IHRy dW5jYXRlZCIpOwogCitub3RlICJUcnVuY2F0ZSBwcmVwYXJlZCBzdGF0ZW1lbnQgcXVlcnkg aW4gREVUQUlMIjsKKyRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7Ciskbm9kZS0+ cHNxbCgKKwkncG9zdGdyZXMnLCAiCisJU0VUIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCBU TyAxMjsKKwlQUkVQQVJFIHN0bXQgQVMgU0VMRUNUICogRlJPTSBwZ19oYmFfZmlsZV9ydWxl cyBXSEVSRSBhZGRyZXNzID0gXCQxOworCUVYRUNVVEUgc3RtdCgnMTI3LjAuMC4xJyk7Iik7 CitvayggJG5vZGUtPmxvZ19jb250YWlucygKKwkJcXIvcHJlcGFyZTogUFJFUEFSRSBzdG10 Li4uJC9tLCAkbG9nX29mZnNldCksCisJIlRydW5jYXRlIHByZXBhcmVkIHN0YXRlbWVudCBx dWVyeSBpbiBERVRBSUwiKTsKKworbm90ZSAiVHJ1bmNhdGUgcHJlcGFyZWQgc3RhdGVtZW50 IHF1ZXJ5IGluIERFVEFJTCAoMCBsZW5ndGgpIjsKKyRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUt PmxvZ2ZpbGU7Ciskbm9kZS0+cHNxbCgKKwkncG9zdGdyZXMnLCAiCisJU0VUIGxvZ19zdGF0 ZW1lbnRfbWF4X2xlbmd0aCBUTyAwOworCVBSRVBBUkUgc3RtdCBBUyBTRUxFQ1QgKiBGUk9N IHBnX2hiYV9maWxlX3J1bGVzIFdIRVJFIGFkZHJlc3MgPSBcJDE7CisJRVhFQ1VURSBzdG10 KCcxMjcuMC4wLjEnKTsiKTsKK29rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKAorCQlxci9wcmVw YXJlOiAuLi4kL20sICRsb2dfb2Zmc2V0KSwKKwkiVHJ1bmNhdGUgcHJlcGFyZWQgc3RhdGVt ZW50IHF1ZXJ5IGluIERFVEFJTCAoMCBsZW5ndGgpIik7CiAkbm9kZS0+c3RvcDsKIGRvbmVf dGVzdGluZygpOwotLSAKMi4yNS4xCgo= --------------ri4UG6WNS5WGZJc613OuU5yJ Content-Type: text/x-patch; charset=UTF-8; name="v1-0002-Simplify-callers-of-truncate_query_log.patch" Content-Disposition: attachment; filename="v1-0002-Simplify-callers-of-truncate_query_log.patch" Content-Transfer-Encoding: base64 RnJvbSA3MTEwZjkzODQ0ZDIyZjkyZWU2NjRjMmU1YmEyZDk1OWNlNzE4MGJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFdlZCwgOCBKdWwgMjAyNiAxODozMToyNyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMi8yXSBTaW1wbGlmeSBjYWxsZXJzIG9mIHRydW5jYXRlX3F1ZXJ5X2xvZygp Cgp0cnVuY2F0ZV9xdWVyeV9sb2coKSBhbHJlYWR5IHJldHVybnMgTlVMTCB3aGVuIHF1ZXJ5 IGxvZ2dpbmcgaXMgZGlzYWJsZWQKb3Igd2hlbiBubyB0cnVuY2F0aW9uIGlzIG5lZWRlZC4g Q2FsbGVycyB0aGVyZWZvcmUgZG8gbm90IG5lZWQgdG8gY2hlY2sKbG9nX3N0YXRlbWVudF9t YXhfbGVuZ3RoIGJlZm9yZSBpbnZva2luZyBpdC4KClJlbW92ZSB0aGUgcmVkdW5kYW50IGNo ZWNrcyBhbmQgcmVseSBvbiB0cnVuY2F0ZV9xdWVyeV9sb2coKSB0byBkZWNpZGUKd2hldGhl ciBhIHRydW5jYXRlZCBjb3B5IHNob3VsZCBiZSByZXR1cm5lZC4gVGhpcyBpcyBwdXJlbHkg YSBjb2RlCmNsZWFudXAgd2l0aCBubyBiZWhhdmlvcmFsIGNoYW5nZS4KCkF1dGhvcjogSmlt IEpvbmVzIDxqaW0uam9uZXNAdW5pLW11ZW5zdGVyLmRlPgotLS0KIHNyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYyB8IDMwICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCmluZGV4IGIwOTQ3ZmQ3Mjk4Li42MWQyODcyOGNlMSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtMTA4NSwxMCArMTA4NSw3IEBAIGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0 IGNoYXIgKnF1ZXJ5X3N0cmluZykKIAkvKiBMb2cgaW1tZWRpYXRlbHkgaWYgZGljdGF0ZWQg YnkgbG9nX3N0YXRlbWVudCAqLwogCWlmIChjaGVja19sb2dfc3RhdGVtZW50KHBhcnNldHJl ZV9saXN0KSkKIAl7Ci0JCWNoYXIJICAgKnRydW5jYXRlZF9zdG10ID0gTlVMTDsKLQotCQlp ZiAobG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoID49IDApCi0JCQl0cnVuY2F0ZWRfc3RtdCA9 IHRydW5jYXRlX3F1ZXJ5X2xvZyhxdWVyeV9zdHJpbmcpOworCQljaGFyCSAgICp0cnVuY2F0 ZWRfc3RtdCA9IHRydW5jYXRlX3F1ZXJ5X2xvZyhxdWVyeV9zdHJpbmcpOwogCiAJCWVyZXBv cnQoTE9HLAogCQkJCShlcnJtc2coInN0YXRlbWVudDogJXMiLApAQCAtMTM5MiwxMCArMTM4 OSw3IEBAIGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZykKIAkJ CWJyZWFrOwogCQljYXNlIDI6CiAJCQl7Ci0JCQkJY2hhcgkgICAqdHJ1bmNhdGVkX3N0bXQg PSBOVUxMOwotCi0JCQkJaWYgKGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCA+PSAwKQotCQkJ CQl0cnVuY2F0ZWRfc3RtdCA9IHRydW5jYXRlX3F1ZXJ5X2xvZyhxdWVyeV9zdHJpbmcpOwor CQkJCWNoYXIJICAgKnRydW5jYXRlZF9zdG10ID0gdHJ1bmNhdGVfcXVlcnlfbG9nKHF1ZXJ5 X3N0cmluZyk7CiAKIAkJCQllcmVwb3J0KExPRywKIAkJCQkJCShlcnJtc2coImR1cmF0aW9u OiAlcyBtcyAgc3RhdGVtZW50OiAlcyIsCkBAIC0xNjM4LDEwICsxNjMyLDcgQEAgZXhlY19w YXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyogc3RyaW5nIHRvIGV4 ZWN1dGUgKi8KIAkJCWJyZWFrOwogCQljYXNlIDI6CiAJCQl7Ci0JCQkJY2hhcgkgICAqdHJ1 bmNhdGVkX3N0bXQgPSBOVUxMOwotCi0JCQkJaWYgKGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0 aCA+PSAwKQotCQkJCQl0cnVuY2F0ZWRfc3RtdCA9IHRydW5jYXRlX3F1ZXJ5X2xvZyhxdWVy eV9zdHJpbmcpOworCQkJCWNoYXIJICAgKnRydW5jYXRlZF9zdG10ID0gdHJ1bmNhdGVfcXVl cnlfbG9nKHF1ZXJ5X3N0cmluZyk7CiAKIAkJCQllcmVwb3J0KExPRywKIAkJCQkJCShlcnJt c2coImR1cmF0aW9uOiAlcyBtcyAgcGFyc2UgJXM6ICVzIiwKQEAgLTIxMjUsMTAgKzIxMTYs NyBAQCBleGVjX2JpbmRfbWVzc2FnZShTdHJpbmdJbmZvIGlucHV0X21lc3NhZ2UpCiAJCQli cmVhazsKIAkJY2FzZSAyOgogCQkJewotCQkJCWNoYXIJICAgKnRydW5jYXRlZF9zdG10ID0g TlVMTDsKLQotCQkJCWlmIChsb2dfc3RhdGVtZW50X21heF9sZW5ndGggPj0gMCkKLQkJCQkJ dHJ1bmNhdGVkX3N0bXQgPSB0cnVuY2F0ZV9xdWVyeV9sb2cocHNyYy0+cXVlcnlfc3RyaW5n KTsKKwkJCQljaGFyCSAgICp0cnVuY2F0ZWRfc3RtdCA9IHRydW5jYXRlX3F1ZXJ5X2xvZyhw c3JjLT5xdWVyeV9zdHJpbmcpOwogCiAJCQkJZXJlcG9ydChMT0csCiAJCQkJCQkoZXJybXNn KCJkdXJhdGlvbjogJXMgbXMgIGJpbmQgJXMlcyVzOiAlcyIsCkBAIC0yMjgyLDEwICsyMjcw LDcgQEAgZXhlY19leGVjdXRlX21lc3NhZ2UoY29uc3QgY2hhciAqcG9ydGFsX25hbWUsIGxv bmcgbWF4X3Jvd3MpCiAJLyogTG9nIGltbWVkaWF0ZWx5IGlmIGRpY3RhdGVkIGJ5IGxvZ19z dGF0ZW1lbnQgKi8KIAlpZiAoY2hlY2tfbG9nX3N0YXRlbWVudChwb3J0YWwtPnN0bXRzKSkK IAl7Ci0JCWNoYXIJICAgKnRydW5jYXRlZF9zb3VyY2UgPSBOVUxMOwotCi0JCWlmIChsb2df c3RhdGVtZW50X21heF9sZW5ndGggPj0gMCkKLQkJCXRydW5jYXRlZF9zb3VyY2UgPSB0cnVu Y2F0ZV9xdWVyeV9sb2coc291cmNlVGV4dCk7CisJCWNoYXIJICAgKnRydW5jYXRlZF9zb3Vy Y2UgPSB0cnVuY2F0ZV9xdWVyeV9sb2coc291cmNlVGV4dCk7CiAKIAkJZXJlcG9ydChMT0cs CiAJCQkJKGVycm1zZygiJXMgJXMlcyVzOiAlcyIsCkBAIC0yNDE0LDEwICsyMzk5LDcgQEAg ZXhlY19leGVjdXRlX21lc3NhZ2UoY29uc3QgY2hhciAqcG9ydGFsX25hbWUsIGxvbmcgbWF4 X3Jvd3MpCiAJCQlicmVhazsKIAkJY2FzZSAyOgogCQkJewotCQkJCWNoYXIJICAgKnRydW5j YXRlZF9zb3VyY2UgPSBOVUxMOwotCi0JCQkJaWYgKGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0 aCA+PSAwKQotCQkJCQl0cnVuY2F0ZWRfc291cmNlID0gdHJ1bmNhdGVfcXVlcnlfbG9nKHNv dXJjZVRleHQpOworCQkJCWNoYXIJICAgKnRydW5jYXRlZF9zb3VyY2UgPSB0cnVuY2F0ZV9x dWVyeV9sb2coc291cmNlVGV4dCk7CiAKIAkJCQllcmVwb3J0KExPRywKIAkJCQkJCShlcnJt c2coImR1cmF0aW9uOiAlcyBtcyAgJXMgJXMlcyVzOiAlcyIsCi0tIAoyLjI1LjEKCg== --------------ri4UG6WNS5WGZJc613OuU5yJ--