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 1whjOb-000O7h-16 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 07:42:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whjOY-00BbUU-1P for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 07:42:07 +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 1whjOX-00BbUM-2e for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 07:42:06 +0000 Received: from udcm-wwu2.uni-muenster.de ([128.176.118.28]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1whjOU-00000000Hbd-3Uag for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 07:42:05 +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=1783582923; x=1815118923; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=RD855CCs70+pkHDxlHLsjyAj0FTbd92GVUNgJwfK/mo=; b=EzSRregF4BnQL9qTOXVJX/mdByoVdhfNMl068UMdj1FGD6cyvYTNlNDS VJLedcMFNDy72ApGoW2jMqdYzTIZ//qDM5vhBbEa+5juSWfE6ZJ5WdKRS zyIn9TIYJ3VQW+SgxLN8UUe7OHG980oBIs22fq0eWXsICzYRctDLOKzxi qrSvY9sV0ql190Xv3K/mEKHKuflwjdb63nFbDJmZFYMBxrh6ezFzUQlSN AkdgBOiGK9bMNnK5CSQjHblsJ8YQyBJzTAO5eL2zL3tSWxgjs89dAUOai G1GQsh/inlttySXeVKV4EEj7UoRlvCM7dg1VaiVygEQQXi6q9tNYIW8jE Q==; X-CSE-ConnectionGUID: CD3hUlWKQgWdbF3fioHMyA== X-CSE-MsgGUID: uuWb49xET/WQhHMwmcH6jg== X-IronPort-AV: E=Sophos;i="6.25,154,1779141600"; d="scan'208,223";a="400432169" Received: from secmail.uni-muenster.de ([128.176.118.4]) by UDCM-RELAY2.UNI-MUENSTER.DE with ESMTP; 09 Jul 2026 09:41:59 +0200 Received: from [192.168.178.52] (dynamic-002-243-185-219.2.243.pool.telefonica.de [2.243.185.219]) by SECMAIL.UNI-MUENSTER.DE (Postfix) with ESMTPSA id A5C6920ADF04; Thu, 9 Jul 2026 09:41:57 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------LHo3wKZ0RQBqd7aKRdtn3LWH" Message-ID: Date: Thu, 9 Jul 2026 09:41:57 +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> <67fcc68a-fce0-42b8-863f-8db5509d1790@uni-muenster.de> <93f10aa2-4c04-45dd-9810-98c7d2dd9b34@uni-muenster.de> <190ba1a8-69f4-4c8b-99cb-aa4691dece95@uni-muenster.de> Content-Language: en-US, de-DE 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. --------------LHo3wKZ0RQBqd7aKRdtn3LWH Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Thanks for the thorough review! On 09/07/2026 06:03, Fujii Masao wrote: > - errdetail("prepare: %s", pstmt->plansource->query_string); > + char *truncated_stmt = truncate_query_log(pstmt->plansource->query_string); > + > + errdetail("prepare: %s", truncated_stmt ? truncated_stmt : > pstmt->plansource->query_string); > > Shouldn't truncated_stmt be freed with pfree() (when non-NULL) > immediately after errdetail()? Yes, I missed that one. Fixed. > - is truncated to at most this many bytes. > + is truncated to at most this many bytes. When a statement is > + truncated, an ellipsis (...) is appended to > + indicate that truncation has occurred. > > Since an ellipsis is appended, the logged output can exceed the configured > limit by three bytes. Wouldn't it be clearer to say something like > "has its statement text truncated to at most this many bytes"? > That makes it clear the limit applies to the statement text, not the entire > logged message. Agreed. I added your suggestion. > -ok($node->log_contains(qr/statement: SELECT '123456789ABC$/m, $log_offset), > +ok($node->log_contains(qr/statement: SELECT '123456789ABC...$/m, $log_offset), > > Shouldn't the dots be escaped? As written, "..." matches any three characters. > I think it should be "\.\.\.". At first I also thought so, as in this context ... could mean any three arbitrary characters, but the tests results showed a different picture, so I thought it was not necessary. Anyway, I escaped them now in v2. > # a 24-byte query should end at the 20th byte ('C'). > > Since an ellipsis is now appended, isn't it better to replace this > with "a 24-byte query should be clipped at the 20th byte ('C') > and followed by an ellipsis."? > > > # With log_statement_max_length = 20, a 24-byte query should end > # at the 20th byte ('C'). > > Similarly, isn't it better to replace this with > "With log_statement_max_length = 20, a 24-byte query should be clipped > at the 20th byte ('C'). and followed by an ellipsis."? >> * 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. > So, should we update the docs and comments accordingly? For example: > > -------------------------------------------- > - A value of zero causes statements to be logged with an empty body. > + A value of zero causes statements to be logged as only an ellipsis. > -1 (the default) logs statements in full. > If this value is specified without units, it is taken as bytes. > > { name => 'log_statement_max_length', type => 'int', context => > 'PGC_SUSET', group => 'LOGGING_WHAT', > - short_desc => 'Sets the maximum length in bytes of logged statements.', > - long_desc => '-1 means log statement in full; 0 means log an empty > statement body.', > + short_desc => 'Sets the maximum length in bytes of logged statement text.', > + long_desc => '-1 means log statement in full; 0 means log only an ellipsis.', > > - #log_statement_max_length = -1 # max bytes of logged statements; > + #log_statement_max_length = -1 # max bytes of logged statement text; > # -1 means log statement in full, > - # 0 means log an empty body > + # 0 means log only an ellipsis > > -# Verify 0 logs an empty statement body. > +# Verify 0 logs only an ellipsis. > note "Zero length truncation"; > > ok($node->log_contains(qr/statement: \.\.\.\s*$/m, $log_offset), > - "0 logs statement body with ellipsis"); > + "0 logs only an ellipsis"); > -------------------------------------------- Comments and docs updated. >> BTW, should I open a new CF entry for this? > Yes, I think that's a good idea so these follow-up patches don't get forgotten. Done: https://commitfest.postgresql.org/patch/6998/ Best, Jim --------------LHo3wKZ0RQBqd7aKRdtn3LWH Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Improve-log_statement_max_length-truncation.patch" Content-Disposition: attachment; filename*0="v2-0001-Improve-log_statement_max_length-truncation.patch" Content-Transfer-Encoding: base64 RnJvbSAzOTA3MmZhNWJmZjhlMjNkNGM1NjYwNGQ0NTYzNWY4MzVhMGM3OGFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFRodSwgOSBKdWwgMjAyNiAwOToyNTozMiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMS8yXSBJbXByb3ZlIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCB0cnVuY2F0 aW9uCgpBcHBseSBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggY29uc2lzdGVudGx5IHdoZW4g bG9nZ2luZyBwcmVwYXJlZApzdGF0ZW1lbnRzLiBQcmV2aW91c2x5LCB0aGUgcHJlcGFyZWQg cXVlcnkgZW1pdHRlZCBpbiB0aGUgREVUQUlMCm1lc3NhZ2UgZm9yIEVYRUNVVEUgd2FzIG5v dCB0cnVuY2F0ZWQsIGV2ZW4gdGhvdWdoIHRoZSBjb3JyZXNwb25kaW5nCnN0YXRlbWVudCBs b2dnZWQgYnkgbG9nX3N0YXRlbWVudCB3YXMuCgpBbHNvIGFwcGVuZCBhbiBlbGxpcHNpcyB0 byB0cnVuY2F0ZWQgc3RhdGVtZW50cywgc28gaXQgaXMgaW1tZWRpYXRlbHkKYXBwYXJlbnQg d2hlbiBhIHN0YXRlbWVudCBoYXMgYmVlbiB0cnVuY2F0ZWQuCgpUaGlzIGFsc28gYXZvaWQg c2Nhbm5pbmcgdGhlIGVudGlyZSBxdWVyeSBzdHJpbmcgd2hlbiBkZXRlcm1pbmluZwppZiB0 cnVuY2F0aW9uIGlzIG5lZWRlZCBieSB1c2luZyBzdHJubGVuKCkgaW5zdGVhZCBvZiBzdHJs ZW4oKSBpbgp0cnVuY2F0ZV9xdWVyeV9sb2coKS4KCkF1dGhvcjogSmltIEpvbmVzIDxqaW0u am9uZXNAdW5pLW11ZW5zdGVyLmRlPgpDby1hdXRob3JlZC1ieTogRnVqaWkgTWFzYW8gPG1h c2FvLmZ1amlpQGdtYWlsLmNvbT4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAg ICAgICAgICAgICAgICAgICAgfCAgNiArKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMu YyAgICAgICAgICAgICAgICAgICB8IDIwICsrKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgNCArLQogLi4uL3QvMDE0X2xvZ19zdGF0 ZW1lbnRfbWF4X2xlbmd0aC5wbCAgICAgICAgIHwgNDYgKysrKysrKysrKysrKystLS0tLQog NCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKaW5kZXggYzY3MTMwYzYyMGUuLjA4NDhjMThkMzI5IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CkBAIC04NTM5LDggKzg1MzksMTAgQEAgbG9nX2xpbmVfcHJlZml4ID0gJyVtIFslcF0gJXEl dUAlZC8lYSAnCiAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1sb2ctbWluLWR1cmF0aW9u LXN0YXRlbWVudCIvPiwKICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWxvZy1taW4tZHVy YXRpb24tc2FtcGxlIi8+LCBvcgogICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbG9nLXRy YW5zYWN0aW9uLXNhbXBsZS1yYXRlIi8+Ci0gICAgICAgIGlzIHRydW5jYXRlZCB0byBhdCBt b3N0IHRoaXMgbWFueSBieXRlcy4KLSAgICAgICAgQSB2YWx1ZSBvZiB6ZXJvIGNhdXNlcyBz dGF0ZW1lbnRzIHRvIGJlIGxvZ2dlZCB3aXRoIGFuIGVtcHR5IGJvZHkuCisgICAgICAgIGhh cyBpdHMgc3RhdGVtZW50IHRleHQgdHJ1bmNhdGVkIHRvIGF0IG1vc3QgdGhpcyBtYW55IGJ5 dGVzLgorICAgICAgICBXaGVuIGEgc3RhdGVtZW50IGlzIHRydW5jYXRlZCwgYW4gZWxsaXBz aXMgKDxsaXRlcmFsPi4uLjwvbGl0ZXJhbD4pCisgICAgICAgIGlzIGFwcGVuZGVkIHRvIGlu ZGljYXRlIHRoYXQgdHJ1bmNhdGlvbiBoYXMgb2NjdXJyZWQuCisgICAgICAgIEEgdmFsdWUg b2YgemVybyBjYXVzZXMgc3RhdGVtZW50cyB0byBiZSBsb2dnZWQgYXMgb25seSBhbiBlbGxp cHNpcy4KICAgICAgICAgPGxpdGVyYWw+LTE8L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCkgbG9n cyBzdGF0ZW1lbnRzIGluIGZ1bGwuCiAgICAgICAgIElmIHRoaXMgdmFsdWUgaXMgc3BlY2lm aWVkIHdpdGhvdXQgdW5pdHMsIGl0IGlzIHRha2VuIGFzIGJ5dGVzLgogICAgICAgICBUaGlz IHNldHRpbmcgZG9lcyBub3QgYWZmZWN0IHN0YXRlbWVudHMgbG9nZ2VkIGJlY2F1c2Ugb2YK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5k L3Rjb3AvcG9zdGdyZXMuYwppbmRleCBjZTE4ZGY4MjBjZC4uMDE5ZTRhYjQyZmUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKQEAgLTI1NTMsOCArMjU1Myw5IEBAIGNoZWNrX2xvZ19kdXJhdGlv bihjaGFyICptc2VjX3N0ciwgYm9vbCB3YXNfbG9nZ2VkKQogICogdHJ1bmNhdGVfcXVlcnlf bG9nCiAgKgkJVHJ1bmNhdGUgcXVlcnkgc3RyaW5nIGlmIG5lZWRlZCBmb3IgbG9nZ2luZwog ICoKLSAqIFJldHVybnMgYSBwYWxsb2MnZCB0cnVuY2F0ZWQgY29weSBpZiB0cnVuY2F0aW9u IGlzIG5lZWRlZCwKLSAqIG9yIE5VTEwgaWYgbm8gdHJ1bmNhdGlvbiBpcyByZXF1aXJlZC4K KyAqIFJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRoZSBxdWVyeSB0cnVuY2F0ZWQgZm9y IGxvZ2dpbmcsIHdpdGggYW4KKyAqIGVsbGlwc2lzIGFwcGVuZGVkIGlmIHRydW5jYXRpb24g b2NjdXJzLCBvciBOVUxMIGlmIG5vIHRydW5jYXRpb24gaXMKKyAqIHJlcXVpcmVkLgogICov CiBzdGF0aWMgY2hhciAqCiB0cnVuY2F0ZV9xdWVyeV9sb2coY29uc3QgY2hhciAqcXVlcnkp CkBAIC0yNTY3LDcgKzI1NjgsNyBAQCB0cnVuY2F0ZV9xdWVyeV9sb2coY29uc3QgY2hhciAq cXVlcnkpCiAJaWYgKCFxdWVyeSB8fCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggPCAwKQog CQlyZXR1cm4gTlVMTDsKIAotCXF1ZXJ5X2xlbiA9IHN0cmxlbihxdWVyeSk7CisJcXVlcnlf bGVuID0gc3RybmxlbihxdWVyeSwgKHNpemVfdCkgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3Ro ICsgTUFYX01VTFRJQllURV9DSEFSX0xFTik7CiAKIAkvKgogCSAqIE5vIG5lZWQgdG8gYWxs b2NhdGUgYSB0cnVuY2F0ZWQgY29weSBpZiB0aGUgcXVlcnkgaXMgc2hvcnRlciB0aGFuCkBA IC0yNTc4LDkgKzI1NzksMTAgQEAgdHJ1bmNhdGVfcXVlcnlfbG9nKGNvbnN0IGNoYXIgKnF1 ZXJ5KQogCiAJLyogVHJ1bmNhdGUgYXQgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGJvdW5kYXJ5 ICovCiAJdHJ1bmNhdGVkX2xlbiA9IHBnX21iY2xpcGxlbihxdWVyeSwgcXVlcnlfbGVuLCBs b2dfc3RhdGVtZW50X21heF9sZW5ndGgpOwotCXRydW5jYXRlZF9xdWVyeSA9IChjaGFyICop IHBhbGxvYyh0cnVuY2F0ZWRfbGVuICsgMSk7CisJdHJ1bmNhdGVkX3F1ZXJ5ID0gKGNoYXIg KikgcGFsbG9jKHRydW5jYXRlZF9sZW4gKyA0KTsKIAltZW1jcHkodHJ1bmNhdGVkX3F1ZXJ5 LCBxdWVyeSwgdHJ1bmNhdGVkX2xlbik7Ci0JdHJ1bmNhdGVkX3F1ZXJ5W3RydW5jYXRlZF9s ZW5dID0gJ1wwJzsKKwltZW1jcHkodHJ1bmNhdGVkX3F1ZXJ5ICsgdHJ1bmNhdGVkX2xlbiwg Ii4uLiIsIDMpOworCXRydW5jYXRlZF9xdWVyeVt0cnVuY2F0ZWRfbGVuICsgM10gPSAnXDAn OwogCiAJcmV0dXJuIHRydW5jYXRlZF9xdWVyeTsKIH0KQEAgLTI2MDgsNyArMjYxMCwxMyBA QCBlcnJkZXRhaWxfZXhlY3V0ZShMaXN0ICpyYXdfcGFyc2V0cmVlX2xpc3QpCiAJCQlwc3Rt dCA9IEZldGNoUHJlcGFyZWRTdGF0ZW1lbnQoc3RtdC0+bmFtZSwgZmFsc2UpOwogCQkJaWYg KHBzdG10KQogCQkJewotCQkJCWVycmRldGFpbCgicHJlcGFyZTogJXMiLCBwc3RtdC0+cGxh bnNvdXJjZS0+cXVlcnlfc3RyaW5nKTsKKwkJCQljaGFyICp0cnVuY2F0ZWRfc3RtdCA9IHRy dW5jYXRlX3F1ZXJ5X2xvZyhwc3RtdC0+cGxhbnNvdXJjZS0+cXVlcnlfc3RyaW5nKTsKKwor CQkJCWVycmRldGFpbCgicHJlcGFyZTogJXMiLCB0cnVuY2F0ZWRfc3RtdCA/IHRydW5jYXRl ZF9zdG10IDogcHN0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CisKKwkJCQlpZiAo dHJ1bmNhdGVkX3N0bXQgIT0gTlVMTCkKKwkJCQkJcGZyZWUodHJ1bmNhdGVkX3N0bXQpOwor CiAJCQkJcmV0dXJuIDA7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCA0N2UxMjIxZjNjMy4uNzk1ODY1MzA3 N2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUKQEAgLTY3Niw5ICs2NzYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgYmluZC1wYXJhbWV0ZXIgdmFsdWVzIHRvIE4gYnl0ZXM7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAtMSBtZWFucyBwcmludCBp biBmdWxsLCAwIGRpc2FibGVzCiAjbG9nX3N0YXRlbWVudCA9ICdub25lJyAgICAgICAgICAg ICAgICAgIyBub25lLCBkZGwsIG1vZCwgYWxsCi0jbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3Ro ID0gLTEgICAgICAgICAgIyBtYXggYnl0ZXMgb2YgbG9nZ2VkIHN0YXRlbWVudHM7CisjbG9n X3N0YXRlbWVudF9tYXhfbGVuZ3RoID0gLTEgICAgICAgICAgIyBtYXggYnl0ZXMgb2YgbG9n Z2VkIHN0YXRlbWVudCB0ZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgLTEgbWVhbnMgbG9nIHN0YXRlbWVudCBpbiBmdWxsLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMCBtZWFucyBsb2cgYW4gZW1wdHkgYm9k eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMCBtZWFucyBs b2cgb25seSBhbiBlbGxpcHNpcwogI2xvZ19yZXBsaWNhdGlvbl9jb21tYW5kcyA9IG9mZgog I2xvZ190ZW1wX2ZpbGVzID0gLTEgICAgICAgICAgICAgICAgICAgICMgbG9nIHRlbXBvcmFy eSBmaWxlcyBlcXVhbCBvciBsYXJnZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplIGluIGtpbG9ieXRlczsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDE0X2xvZ19zdGF0ZW1l bnRfbWF4X2xlbmd0aC5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDE0X2xv Z19zdGF0ZW1lbnRfbWF4X2xlbmd0aC5wbAppbmRleCBiMWNlNjA2OGY1ZC4uYjg3OTU2NmVm NTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDE0X2xvZ19z dGF0ZW1lbnRfbWF4X2xlbmd0aC5wbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlz Yy90LzAxNF9sb2dfc3RhdGVtZW50X21heF9sZW5ndGgucGwKQEAgLTE1LDE0ICsxNSwxNSBA QCAkbm9kZS0+aW5pdCgpOwogJG5vZGUtPnN0YXJ0OwogCiAjIFZlcmlmeSBBU0NJSSB0cnVu Y2F0aW9uLiBXaXRoIGxvZ19zdGF0ZW1lbnRfbWF4X2xlbmd0aCA9IDIwLAotIyBhIDI0LWJ5 dGUgcXVlcnkgc2hvdWxkIGVuZCBhdCB0aGUgMjB0aCBieXRlICgnQycpLgorIyBhIDI0LWJ5 dGUgcXVlcnkgc2hvdWxkIGJlIGNsaXBwZWQgYXQgdGhlIDIwdGggYnl0ZSAoJ0MnKSBhbmQK KyMgZm9sbG93ZWQgYnkgYW4gZWxsaXBzaXMuCiBub3RlICJBU0NJSSB0cnVuY2F0aW9uIHZp YSBsb2dfc3RhdGVtZW50IjsKIG15ICRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7 CiAkbm9kZS0+cHNxbCgKIAkncG9zdGdyZXMnLCAiCiAJU0VUIGxvZ19zdGF0ZW1lbnRfbWF4 X2xlbmd0aCBUTyAyMDsKIAlTRUxFQ1QgJzEyMzQ1Njc4OUFCQ0RFRic7Iik7Ci1vaygkbm9k ZS0+bG9nX2NvbnRhaW5zKHFyL3N0YXRlbWVudDogU0VMRUNUICcxMjM0NTY3ODlBQkMkL20s ICRsb2dfb2Zmc2V0KSwKK29rKCRub2RlLT5sb2dfY29udGFpbnMocXIvc3RhdGVtZW50OiBT RUxFQ1QgJzEyMzQ1Njc4OUFCQ1wuXC5cLiQvbSwgJGxvZ19vZmZzZXQpLAogCSJBU0NJSSBx dWVyeSB0cnVuY2F0ZWQgYXQgMjAgYnl0ZXMiKTsKIAogIyBWZXJpZnkgLTEgbG9ncyBzdGF0 ZW1lbnQgaW4gZnVsbCAoY2xvc2luZyBxdW90ZSBtdXN0IGJlIHByZXNlbnQpLgpAQCAtNTEs MjMgKzUyLDIzIEBAIFNLSVA6CiAJCVNFVCBjbGllbnRfZW5jb2RpbmcgVE8gJ1VURjgnOwog CQlTRVQgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIFRPIDExOwogCQkkbWJxdWVyeSIpOwot CW9rKCRub2RlLT5sb2dfY29udGFpbnMocXIvc3RhdGVtZW50OiBTRUxFQ1QgJ0FBJC9tLCAk bG9nX29mZnNldCksCisJb2soJG5vZGUtPmxvZ19jb250YWlucyhxci9zdGF0ZW1lbnQ6IFNF TEVDVCAnQUFcLlwuXC4kL20sICRsb2dfb2Zmc2V0KSwKIAkJIm11bHRpYnl0ZSB0cnVuY2F0 aW9uIGF0IGNoYXJhY3RlciBib3VuZGFyeSIpOwogfQogCi0jIFZlcmlmeSAwIGxvZ3MgYW4g ZW1wdHkgc3RhdGVtZW50IGJvZHkuCisjIFZlcmlmeSAwIGxvZ3Mgb25seSBhbiBlbGxpcHNp cy4KIG5vdGUgIlplcm8gbGVuZ3RoIHRydW5jYXRpb24iOwogJGxvZ19vZmZzZXQgPSAtcyAk bm9kZS0+bG9nZmlsZTsKICRub2RlLT5wc3FsKAogCSdwb3N0Z3JlcycsICIKIAlTRVQgbG9n X3N0YXRlbWVudF9tYXhfbGVuZ3RoIFRPIDA7CiAJU0VMRUNUICcxMjM0NTY3ODlBQkNERUYn OyIpOwotb2soJG5vZGUtPmxvZ19jb250YWlucyhxci9zdGF0ZW1lbnQ6XHMqJC9tLCAkbG9n X29mZnNldCksCi0JIjAgbG9ncyBhbiBlbXB0eSBzdGF0ZW1lbnQgYm9keSIpOworb2soJG5v ZGUtPmxvZ19jb250YWlucyhxci9zdGF0ZW1lbnQ6IFwuXC5cLlxzKiQvbSwgJGxvZ19vZmZz ZXQpLAorCSIwIGxvZ3Mgc3RhdGVtZW50IGJvZHkgd2l0aCBvbmx5IGFuIGVsbGlwc2lzIik7 CiAKICMgVmVyaWZ5IHRydW5jYXRpb24gdmlhIHRoZSBleHRlbmRlZCBxdWVyeSBwcm90b2Nv bCAoZXhlY3V0ZSBtZXNzYWdlKS4KLSMgV2l0aCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGgg PSAyMCwgYSAyNC1ieXRlIHF1ZXJ5IHNob3VsZCBlbmQKLSMgYXQgdGhlIDIwdGggYnl0ZSAo J0MnKS4KKyMgV2l0aCBsb2dfc3RhdGVtZW50X21heF9sZW5ndGggPSAyMCwgYSAyNC1ieXRl IHF1ZXJ5IHNob3VsZCBiZSBjbGlwcGVkCisjIGF0IHRoZSAyMHRoIGJ5dGUgKCdDJykgYW5k IGZvbGxvd2VkIGJ5IGFuIGVsbGlwc2lzLgogbm90ZSAiRXh0ZW5kZWQgcXVlcnkgcHJvdG9j b2wgKGV4ZWN1dGUpIHRydW5jYXRpb24iOwogJGxvZ19vZmZzZXQgPSAtcyAkbm9kZS0+bG9n ZmlsZTsKICRub2RlLT5wc3FsKApAQCAtNzUsNyArNzYsNyBAQCAkbm9kZS0+cHNxbCgKIAlT RVQgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIFRPIDIwOwogCVNFTEVDVCAnMTIzNDU2Nzg5 QUJDREVGJyBcXGJpbmQgXFxnIik7CiBvayggJG5vZGUtPmxvZ19jb250YWlucygKLQkJcXIv ZXhlY3V0ZSA8dW5uYW1lZD46IFNFTEVDVCAnMTIzNDU2Nzg5QUJDJC9tLCAkbG9nX29mZnNl dCksCisJCXFyL2V4ZWN1dGUgPHVubmFtZWQ+OiBTRUxFQ1QgJzEyMzQ1Njc4OUFCQ1wuXC5c LiQvbSwgJGxvZ19vZmZzZXQpLAogCSJleHRlbmRlZCBwcm90b2NvbCBleGVjdXRlIHRydW5j YXRlZCBhdCAyMCBieXRlcyIpOwogCiAjIFZlcmlmeSBleHRlbmRlZCBwcm90b2NvbCBhbHNv IHJlc3BlY3RzIC0xIChubyB0cnVuY2F0aW9uOyBjbG9zaW5nIHF1b3RlCkBAIC0xMDIsMTQg KzEwMywzNSBAQCAkbm9kZS0+cHNxbCgKIAlTRVQgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3Ro IFRPIDIwOwogCVNFTEVDVCAnMTIzNDU2Nzg5QUJDREVGJyBcXGJpbmQgXFxnIik7CiBvaygg JG5vZGUtPmxvZ19jb250YWlucygKLQkJcXIvcGFyc2UgPHVubmFtZWQ+OiBTRUxFQ1QgJzEy MzQ1Njc4OUFCQyQvbSwgJGxvZ19vZmZzZXQpLAorCQlxci9wYXJzZSA8dW5uYW1lZD46IFNF TEVDVCAnMTIzNDU2Nzg5QUJDXC5cLlwuJC9tLCAkbG9nX29mZnNldCksCiAJInBhcnNlIGR1 cmF0aW9uIGVudHJ5IHRydW5jYXRlZCIpOwogb2soICRub2RlLT5sb2dfY29udGFpbnMoCi0J CXFyL2JpbmQgPHVubmFtZWQ+OiBTRUxFQ1QgJzEyMzQ1Njc4OUFCQyQvbSwgJGxvZ19vZmZz ZXQpLAorCQlxci9iaW5kIDx1bm5hbWVkPjogU0VMRUNUICcxMjM0NTY3ODlBQkNcLlwuXC4k L20sICRsb2dfb2Zmc2V0KSwKIAkiYmluZCBkdXJhdGlvbiBlbnRyeSB0cnVuY2F0ZWQiKTsK IG9rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKAotCQlxci9leGVjdXRlIDx1bm5hbWVkPjogU0VM RUNUICcxMjM0NTY3ODlBQkMkL20sICRsb2dfb2Zmc2V0KSwKKwkJcXIvZXhlY3V0ZSA8dW5u YW1lZD46IFNFTEVDVCAnMTIzNDU2Nzg5QUJDXC5cLlwuJC9tLCAkbG9nX29mZnNldCksCiAJ ImV4ZWN1dGUgZHVyYXRpb24gZW50cnkgdHJ1bmNhdGVkIik7CiAKK25vdGUgIlRydW5jYXRl IHByZXBhcmVkIHN0YXRlbWVudCBxdWVyeSBpbiBERVRBSUwiOworJGxvZ19vZmZzZXQgPSAt cyAkbm9kZS0+bG9nZmlsZTsKKyRub2RlLT5wc3FsKAorCSdwb3N0Z3JlcycsICIKKwlTRVQg bG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIFRPIDEyOworCVBSRVBBUkUgc3RtdCBBUyBTRUxF Q1QgKiBGUk9NIHBnX2hiYV9maWxlX3J1bGVzIFdIRVJFIGFkZHJlc3MgPSBcJDE7CisJRVhF Q1VURSBzdG10KCcxMjcuMC4wLjEnKTsiKTsKK29rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKAor CQlxci9wcmVwYXJlOiBQUkVQQVJFIHN0bXRcLlwuXC4kL20sICRsb2dfb2Zmc2V0KSwKKwki VHJ1bmNhdGUgcHJlcGFyZWQgc3RhdGVtZW50IHF1ZXJ5IGluIERFVEFJTCIpOworCitub3Rl ICJUcnVuY2F0ZSBwcmVwYXJlZCBzdGF0ZW1lbnQgcXVlcnkgaW4gREVUQUlMICgwIGxlbmd0 aCkiOworJGxvZ19vZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKKyRub2RlLT5wc3FsKAor CSdwb3N0Z3JlcycsICIKKwlTRVQgbG9nX3N0YXRlbWVudF9tYXhfbGVuZ3RoIFRPIDA7CisJ UFJFUEFSRSBzdG10IEFTIFNFTEVDVCAqIEZST00gcGdfaGJhX2ZpbGVfcnVsZXMgV0hFUkUg YWRkcmVzcyA9IFwkMTsKKwlFWEVDVVRFIHN0bXQoJzEyNy4wLjAuMScpOyIpOworb2soICRu b2RlLT5sb2dfY29udGFpbnMoCisJCXFyL3ByZXBhcmU6IFwuXC5cLiQvbSwgJGxvZ19vZmZz ZXQpLAorCSIwIGxvZ3MgdGhlIHByZXBhcmVkIHN0YXRlbWVudCBib2R5IHdpdGggb25seSBh biBlbGxpcHNpcyIpOwogJG5vZGUtPnN0b3A7CiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNTUu MAoK --------------LHo3wKZ0RQBqd7aKRdtn3LWH Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Simplify-callers-of-truncate_query_log.patch" Content-Disposition: attachment; filename="v2-0002-Simplify-callers-of-truncate_query_log.patch" Content-Transfer-Encoding: base64 RnJvbSA0YzFmYjhhY2QzMjFkZWE0ODMwYjk2ZDE1MThiMWZmZDQ0NzRiMTY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVlbnN0 ZXIuZGU+CkRhdGU6IFdlZCwgOCBKdWwgMjAyNiAxODozMToyNyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMi8yXSBTaW1wbGlmeSBjYWxsZXJzIG9mIHRydW5jYXRlX3F1ZXJ5X2xvZygp Cgp0cnVuY2F0ZV9xdWVyeV9sb2coKSBhbHJlYWR5IHJldHVybnMgTlVMTCB3aGVuIHF1ZXJ5 IGxvZ2dpbmcgaXMgZGlzYWJsZWQKb3Igd2hlbiBubyB0cnVuY2F0aW9uIGlzIG5lZWRlZC4g Q2FsbGVycyB0aGVyZWZvcmUgZG8gbm90IG5lZWQgdG8gY2hlY2sKbG9nX3N0YXRlbWVudF9t YXhfbGVuZ3RoIGJlZm9yZSBpbnZva2luZyBpdC4KClJlbW92ZSB0aGUgcmVkdW5kYW50IGNo ZWNrcyBhbmQgcmVseSBvbiB0cnVuY2F0ZV9xdWVyeV9sb2coKSB0byBkZWNpZGUKd2hldGhl ciBhIHRydW5jYXRlZCBjb3B5IHNob3VsZCBiZSByZXR1cm5lZC4gVGhpcyBpcyBwdXJlbHkg YSBjb2RlCmNsZWFudXAgd2l0aCBubyBiZWhhdmlvcmFsIGNoYW5nZS4KCkF1dGhvcjogSmlt IEpvbmVzIDxqaW0uam9uZXNAdW5pLW11ZW5zdGVyLmRlPgotLS0KIHNyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYyB8IDMwICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCmluZGV4IDAxOWU0YWI0MmZlLi5iOTY2Y2IyNDJiNyAxMDA2NDQKLS0tIGEv 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 c2coImR1cmF0aW9uOiAlcyBtcyAgJXMgJXMlcyVzOiAlcyIsCi0tIAoyLjU1LjAKCg== --------------LHo3wKZ0RQBqd7aKRdtn3LWH--