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 1w7qp9-005l1a-2j for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 08:21:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7qp8-00G8rv-0g for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 08:21:14 +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 1w7dK4-00Bz3e-28 for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 17:56:17 +0000 Received: from forward502d.mail.yandex.net ([2a02:6b8:c41:1300:1:45:d181:d502]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w7dK1-00000002DI8-3dQD for pgsql-hackers@postgresql.org; Tue, 31 Mar 2026 17:56:16 +0000 Received: from mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:489d:0:640:baa6:0]) by forward502d.mail.yandex.net (Yandex) with ESMTPS id 4E517C1C39 for ; Tue, 31 Mar 2026 20:56:11 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id 9uebv82SDOs0-5oDyzUuO; Tue, 31 Mar 2026 20:56:10 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1774979770; bh=14WUYfHD6TBCzh30lQaKO58cG+luxLHyWkVGiNvhEvY=; h=In-Reply-To:References:To:Subject:Message-ID:Date:From; b=GnIuXxRk2Q4lVgnxr2QZEicPbLFBuRZHsM5+2Hhb+um5CFORLKqHWd85v+Wyce+pY ST7oz6mySyo4PFbwpbRBNGY3mQKfjKGa8zzcKpOoc4jn/JaxPcA3555H/mkte8+rOY YnbZcgWKwUYvmcAWk/1CcBtdp0nkM88P35YXAFuM= Authentication-Results: mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------LG3o48p0WyMwMjR73RGV3xLf" Message-ID: <903e5b83-e94b-440e-b47d-fedd151c854d@tantorlabs.com> Date: Tue, 31 Mar 2026 20:56:09 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] analyze: move elevel calculation into do_analyze_rel() From: Lev Nikolaev To: "pgsql-hackers@postgresql.org" References: <238121774875528@mail.360.yandex.ru> Content-Language: en-US In-Reply-To: <238121774875528@mail.360.yandex.ru> 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. --------------LG3o48p0WyMwMjR73RGV3xLf Content-Type: multipart/alternative; boundary="------------FWF0PVcIwig4nJw61Hun3IQ1" --------------FWF0PVcIwig4nJw61Hun3IQ1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi hackers, I reworked the patch slightly. Since do_analyze_rel() is static, removing the extra elevel argument is local to analyze.c only. No behavioral change is intended. -- Best regards, Lev Nikolaev, Tantor Labs LLC, https://tantorlabs.com/ 30.03.2026 16:03, Лев Николаев пишет: > > Hi hackers, > > While reading analyze.c in current master, I noticed a small cleanup > opportunity in the ANALYZE code path. > > Currently, analyze_rel() computes elevel from params.options, but does > not use it directly. It only passes the value down to > do_analyze_rel(). At the same time, do_analyze_rel() already receives > params and derives verbose from params.options for its own purposes. > > The attached patch moves the elevel calculation into do_analyze_rel() > and removes the extra elevel argument from its declaration, > definition, and call sites. > > No behavioral change is intended here. The logging level selection > remains the same; the calculation is just moved closer to the actual > use sites. > > Comments and feedback would be appreciated. > > -- > > Best regards, > > Lev Nikolaev, > > Tantor Labs LLC, > > https://tantorlabs.com/ > --------------FWF0PVcIwig4nJw61Hun3IQ1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi hackers,

I reworked the patch slightly.

Since do_analyze_rel() is static, removing the extra elevel argument is
local to analyze.c only. No behavioral change is intended.

--

Best regards,

Lev Nikolaev,

Tantor Labs LLC,

https://tantorlabs.com/



30.03.2026 16:03, Лев Николаев пишет:

Hi hackers,

While reading analyze.c in current master, I noticed a small cleanup opportunity in the ANALYZE code path.

Currently, analyze_rel() computes elevel from params.options, but does not use it directly. It only passes the value down to do_analyze_rel(). At the same time, do_analyze_rel() already receives params and derives verbose from params.options for its own purposes.

The attached patch moves the elevel calculation into do_analyze_rel() and removes the extra elevel argument from its declaration, definition, and call sites.

No behavioral change is intended here. The logging level selection remains the same; the calculation is just moved closer to the actual use sites.

Comments and feedback would be appreciated.

 

--

Best regards,

Lev Nikolaev,

Tantor Labs LLC,

https://tantorlabs.com/

--------------FWF0PVcIwig4nJw61Hun3IQ1-- --------------LG3o48p0WyMwMjR73RGV3xLf Content-Type: text/x-patch; charset=UTF-8; name="0001-analyze-move-elevel-calculation-into-do_analyze_rel.patch" Content-Disposition: attachment; filename*0="0001-analyze-move-elevel-calculation-into-do_analyze_rel.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSA1YzFmMDhhNmY3YzI0YWEyNmI5NmZhNmY5NmJjNTMxNDk2MjFjMzg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMZXYgTmlrb2xhZXYgPGxldi5uaWtvbGFldkB0YW50 b3JsYWJzLnJ1PgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDExOjE1OjQ3ICswMDAwClN1Ympl Y3Q6IFtQQVRDSF0gYW5hbHl6ZTogbW92ZSBlbGV2ZWwgY2FsY3VsYXRpb24gaW50byBkb19h bmFseXplX3JlbCgpCgphbmFseXplX3JlbCgpIGNvbXB1dGVzIGVsZXZlbCBmcm9tIHBhcmFt cy5vcHRpb25zLCBidXQgZG9lcyBub3QgdXNlIGl0CmRpcmVjdGx5IGFuZCBvbmx5IHBhc3Nl cyBpdCB0byBkb19hbmFseXplX3JlbCgpLgoKU2luY2UgZG9fYW5hbHl6ZV9yZWwoKSBhbHJl YWR5IHJlY2VpdmVzIHBhcmFtcyBhbmQgZGVyaXZlcyB2ZXJib3NlIGZyb20KcGFyYW1zLm9w dGlvbnMsIGNvbXB1dGUgZWxldmVsIHRoZXJlIGluc3RlYWQgYW5kIHJlbW92ZSB0aGUgZXh0 cmEKZnVuY3Rpb24gYXJndW1lbnQuCgpObyBiZWhhdmlvcmFsIGNoYW5nZSBpbnRlbmRlZC4K LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMgfCAyNiArKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwppbmRleCBlZWVkOTFiZTI2Ni4u M2M1NjViODM0NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKQEAgLTc4LDcgKzc4LDcg QEAgc3RhdGljIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHZhY19zdHJhdGVneTsKIHN0YXRpYyB2 b2lkIGRvX2FuYWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwKIAkJCQkJCSAgIGNvbnN0IFZh Y3V1bVBhcmFtcyBwYXJhbXMsIExpc3QgKnZhX2NvbHMsCiAJCQkJCQkgICBBY3F1aXJlU2Ft cGxlUm93c0Z1bmMgYWNxdWlyZWZ1bmMsIEJsb2NrTnVtYmVyIHJlbHBhZ2VzLAotCQkJCQkJ ICAgYm9vbCBpbmgsIGJvb2wgaW5fb3V0ZXJfeGFjdCwgaW50IGVsZXZlbCk7CisJCQkJCQkg ICBib29sIGluaCwgYm9vbCBpbl9vdXRlcl94YWN0KTsKIHN0YXRpYyB2b2lkIGNvbXB1dGVf aW5kZXhfc3RhdHMoUmVsYXRpb24gb25lcmVsLCBkb3VibGUgdG90YWxyb3dzLAogCQkJCQkJ CQlBbmxJbmRleERhdGEgKmluZGV4ZGF0YSwgaW50IG5pbmRleGVzLAogCQkJCQkJCQlIZWFw VHVwbGUgKnJvd3MsIGludCBudW1yb3dzLApAQCAtMTExLDE2ICsxMTEsOSBAQCBhbmFseXpl X3JlbChPaWQgcmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCUJ1ZmZlckFjY2Vzc1N0 cmF0ZWd5IGJzdHJhdGVneSkKIHsKIAlSZWxhdGlvbglvbmVyZWw7Ci0JaW50CQkJZWxldmVs OwogCUFjcXVpcmVTYW1wbGVSb3dzRnVuYyBhY3F1aXJlZnVuYyA9IE5VTEw7CiAJQmxvY2tO dW1iZXIgcmVscGFnZXMgPSAwOwogCi0JLyogU2VsZWN0IGxvZ2dpbmcgbGV2ZWwgKi8KLQlp ZiAocGFyYW1zLm9wdGlvbnMgJiBWQUNPUFRfVkVSQk9TRSkKLQkJZWxldmVsID0gSU5GTzsK LQllbHNlCi0JCWVsZXZlbCA9IERFQlVHMjsKLQogCS8qIFNldCB1cCBzdGF0aWMgdmFyaWFi bGVzICovCiAJdmFjX3N0cmF0ZWd5ID0gYnN0cmF0ZWd5OwogCkBAIC0yNTMsMTQgKzI0Niwx NCBAQCBhbmFseXplX3JlbChPaWQgcmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwKIAkgKi8K IAlpZiAob25lcmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSkKIAkJZG9fYW5hbHl6ZV9yZWwob25lcmVsLCBwYXJhbXMsIHZhX2NvbHMsIGFjcXVp cmVmdW5jLAotCQkJCQkgICByZWxwYWdlcywgZmFsc2UsIGluX291dGVyX3hhY3QsIGVsZXZl bCk7CisJCQkJCSAgIHJlbHBhZ2VzLCBmYWxzZSwgaW5fb3V0ZXJfeGFjdCk7CiAKIAkvKgog CSAqIElmIHRoZXJlIGFyZSBjaGlsZCB0YWJsZXMsIGRvIHJlY3Vyc2l2ZSBBTkFMWVpFLgog CSAqLwogCWlmIChvbmVyZWwtPnJkX3JlbC0+cmVsaGFzc3ViY2xhc3MpCiAJCWRvX2FuYWx5 emVfcmVsKG9uZXJlbCwgcGFyYW1zLCB2YV9jb2xzLCBhY3F1aXJlZnVuYywgcmVscGFnZXMs Ci0JCQkJCSAgIHRydWUsIGluX291dGVyX3hhY3QsIGVsZXZlbCk7CisJCQkJCSAgIHRydWUs IGluX291dGVyX3hhY3QpOwogCiAJLyoKIAkgKiBDbG9zZSBzb3VyY2UgcmVsYXRpb24gbm93 LCBidXQga2VlcCBsb2NrIHNvIHRoYXQgbm8gb25lIGRlbGV0ZXMgaXQKQEAgLTI4MywxNSAr Mjc2LDE1IEBAIGFuYWx5emVfcmVsKE9pZCByZWxpZCwgUmFuZ2VWYXIgKnJlbGF0aW9uLAog c3RhdGljIHZvaWQKIGRvX2FuYWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwgY29uc3QgVmFj dXVtUGFyYW1zIHBhcmFtcywKIAkJCSAgIExpc3QgKnZhX2NvbHMsIEFjcXVpcmVTYW1wbGVS b3dzRnVuYyBhY3F1aXJlZnVuYywKLQkJCSAgIEJsb2NrTnVtYmVyIHJlbHBhZ2VzLCBib29s IGluaCwgYm9vbCBpbl9vdXRlcl94YWN0LAotCQkJICAgaW50IGVsZXZlbCkKKwkJCSAgIEJs b2NrTnVtYmVyIHJlbHBhZ2VzLCBib29sIGluaCwgYm9vbCBpbl9vdXRlcl94YWN0KQogewog CWludAkJCWF0dHJfY250LAogCQkJCXRjbnQsCiAJCQkJaSwKIAkJCQlpbmQ7CiAJUmVsYXRp b24gICAqSXJlbDsKLQlpbnQJCQluaW5kZXhlczsKKwlpbnQJCQluaW5kZXhlcywKKwkJCQll bGV2ZWw7CiAJYm9vbAkJdmVyYm9zZSwKIAkJCQlpbnN0cnVtZW50LAogCQkJCWhhc2luZGV4 OwpAQCAtMzE2LDYgKzMwOSwxMyBAQCBkb19hbmFseXplX3JlbChSZWxhdGlvbiBvbmVyZWws IGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJUGdTdGF0X0NvdW50ZXIgc3RhcnR3cml0 ZXRpbWUgPSAwOwogCiAJdmVyYm9zZSA9IChwYXJhbXMub3B0aW9ucyAmIFZBQ09QVF9WRVJC T1NFKSAhPSAwOworCisJLyogU2VsZWN0IGxvZ2dpbmcgbGV2ZWwgKi8KKwlpZiAodmVyYm9z ZSkKKwkJZWxldmVsID0gSU5GTzsKKwllbHNlCisJCWVsZXZlbCA9IERFQlVHMjsKKwogCWlu c3RydW1lbnQgPSAodmVyYm9zZSB8fCAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYm CiAJCQkJCQkJICBwYXJhbXMubG9nX2FuYWx5emVfbWluX2R1cmF0aW9uID49IDApKTsKIAlp ZiAoaW5oKQotLSAKMi4zNC4xCgo= --------------LG3o48p0WyMwMjR73RGV3xLf--