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.94.2) (envelope-from ) id 1txkyV-00EDt6-Bo for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 11:00:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1txkyT-004DHY-2b for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 11:00:37 +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.94.2) (envelope-from ) id 1txkyS-004DHQ-Mx for pgsql-hackers@lists.postgresql.org; Thu, 27 Mar 2025 11:00:36 +0000 Received: from forward501d.mail.yandex.net ([178.154.239.209]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1txkyQ-001V4r-0k for pgsql-hackers@postgresql.org; Thu, 27 Mar 2025 11:00:36 +0000 Received: from mail-nwsmtp-smtp-production-main-78.klg.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-78.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:c54a:0:640:3e90:0]) by forward501d.mail.yandex.net (Yandex) with ESMTPS id C0AF760F54; Thu, 27 Mar 2025 14:00:32 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-78.klg.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id U0PcYQALe8c0-khozjNBh; Thu, 27 Mar 2025 14:00:32 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1743073232; bh=nH8jRqAZF1oKBg6fwxQlQsm4il5+S9m9S+4np84DM1g=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=EKpCMvy9TJXWvc+lZTiD5V+5rG8t+89yT4VCxnnSzww1kXdlZ9e/53KV3SgwpOQ2h ccV6erDSrzbIzyk1s0ATITz8cjfIK6I8/6secrdAe+eDq34INsyrJCqjT+XStd77YR kTOn/UXiDaufAlb4YX3Y9dmDpQSb691atpU0MFgY= Authentication-Results: mail-nwsmtp-smtp-production-main-78.klg.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------Nqo9DALGO0un850G0z4IhyCu" Message-ID: <95f1deab-3458-45f6-a13b-d6f12b3d3ba3@tantorlabs.com> Date: Thu, 27 Mar 2025 14:00:30 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Remove vardata parameters from eqjoinsel_inner To: Richard Guo Cc: pgsql-hackers References: <7cdf4ecd-8789-4d85-ab59-2b78d4d27b1f@tantorlabs.com> Content-Language: en-US From: Ilia Evdokimov 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. --------------Nqo9DALGO0un850G0z4IhyCu Content-Type: multipart/alternative; boundary="------------LrNkwLuMZBHxT1pgVNqOPJxW" --------------LrNkwLuMZBHxT1pgVNqOPJxW Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 27.03.2025 10:48, Richard Guo wrote: > I'm wondering whether we should also remove parameter vardata1 from > eqjoinsel_semi. vardata2 is still needed though to clamp nd2 to be > not more than the rel's row estimate. > > Thanks > Richard Indeed, the parameter vardata1 in eqjoinsel_semi() is currently unused and could logically be removed. However, simply leaving a single parameter named vardata2 would appear strange and unintuitive, as it implicitly suggests the existence of a corresponding "first" parameter. I suggest renaming vardata2 to something more descriptive, such as rhs_vardata, clearly indicating its role related specifically to the right side of the join condition. I attached v2 patch with changes. Any thoughts? -- Best regards, Ilia Evdokimov, Tantor Labs LLC. --------------LrNkwLuMZBHxT1pgVNqOPJxW Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit


On 27.03.2025 10:48, Richard Guo wrote:
I'm wondering whether we should also remove parameter vardata1 from
eqjoinsel_semi.  vardata2 is still needed though to clamp nd2 to be
not more than the rel's row estimate.

Thanks
Richard


Indeed, the parameter vardata1 in eqjoinsel_semi() is currently unused and could logically be removed. However, simply leaving a single parameter named vardata2 would appear strange and unintuitive, as it implicitly suggests the existence of a corresponding "first" parameter. I suggest renaming vardata2 to something more descriptive, such as rhs_vardata, clearly indicating its role related specifically to the right side of the join condition.

I attached v2 patch with changes.

Any thoughts?

--
Best regards,
Ilia Evdokimov,
Tantor Labs LLC.

--------------LrNkwLuMZBHxT1pgVNqOPJxW-- --------------Nqo9DALGO0un850G0z4IhyCu Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Remove-unused-vardata-parameters-in-eqjoinsel.patch" Content-Disposition: attachment; filename*0="v2-0001-Remove-unused-vardata-parameters-in-eqjoinsel.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZWM5OWQ3MTJkN2ZkYTNjYzE4YTg3MDAzMTgxNThmNTRiYWU0YzU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdmRva2ltb3YgSWxpYSA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5jb20+CkRhdGU6IFRodSwgMjcgTWFyIDIwMjUgMTM6NTk6MDIgKzAzMDAK U3ViamVjdDogW1BBVENIIHYyXSBSZW1vdmUgdW51c2VkIHZhcmRhdGEgcGFyYW1ldGVycyBp biBlcWpvaW5zZWxfaW5uZXIgYW5kCiBlcWpvaW5zZWxfc2VtaQoKLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvc2VsZnVuY3MuYyB8IDE3ICsrKysrKystLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9zZWxmdW5jcy5jCmluZGV4IDViMzVkZWJjOGZmLi42ZDQyOGQ2NWQ2NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTE1MCwxNCArMTUwLDEzIEBAIGdldF9pbmRl eF9zdGF0c19ob29rX3R5cGUgZ2V0X2luZGV4X3N0YXRzX2hvb2sgPSBOVUxMOwogCiBzdGF0 aWMgZG91YmxlIGVxc2VsX2ludGVybmFsKFBHX0ZVTkNUSU9OX0FSR1MsIGJvb2wgbmVnYXRl KTsKIHN0YXRpYyBkb3VibGUgZXFqb2luc2VsX2lubmVyKE9pZCBvcGZ1bmNvaWQsIE9pZCBj b2xsYXRpb24sCi0JCQkJCQkJICBWYXJpYWJsZVN0YXREYXRhICp2YXJkYXRhMSwgVmFyaWFi bGVTdGF0RGF0YSAqdmFyZGF0YTIsCiAJCQkJCQkJICBkb3VibGUgbmQxLCBkb3VibGUgbmQy LAogCQkJCQkJCSAgYm9vbCBpc2RlZmF1bHQxLCBib29sIGlzZGVmYXVsdDIsCiAJCQkJCQkJ ICBBdHRTdGF0c1Nsb3QgKnNzbG90MSwgQXR0U3RhdHNTbG90ICpzc2xvdDIsCiAJCQkJCQkJ ICBGb3JtX3BnX3N0YXRpc3RpYyBzdGF0czEsIEZvcm1fcGdfc3RhdGlzdGljIHN0YXRzMiwK IAkJCQkJCQkgIGJvb2wgaGF2ZV9tY3ZzMSwgYm9vbCBoYXZlX21jdnMyKTsKIHN0YXRpYyBk b3VibGUgZXFqb2luc2VsX3NlbWkoT2lkIG9wZnVuY29pZCwgT2lkIGNvbGxhdGlvbiwKLQkJ CQkJCQkgVmFyaWFibGVTdGF0RGF0YSAqdmFyZGF0YTEsIFZhcmlhYmxlU3RhdERhdGEgKnZh cmRhdGEyLAorCQkJCQkJCSBWYXJpYWJsZVN0YXREYXRhICpyaHNfdmFyZGF0YSwKIAkJCQkJ CQkgZG91YmxlIG5kMSwgZG91YmxlIG5kMiwKIAkJCQkJCQkgYm9vbCBpc2RlZmF1bHQxLCBi b29sIGlzZGVmYXVsdDIsCiAJCQkJCQkJIEF0dFN0YXRzU2xvdCAqc3Nsb3QxLCBBdHRTdGF0 c1Nsb3QgKnNzbG90MiwKQEAgLTIzNDgsNyArMjM0Nyw2IEBAIGVxam9pbnNlbChQR19GVU5D VElPTl9BUkdTKQogCiAJLyogV2UgbmVlZCB0byBjb21wdXRlIHRoZSBpbm5lci1qb2luIHNl bGVjdGl2aXR5IGluIGFsbCBjYXNlcyAqLwogCXNlbGVjX2lubmVyID0gZXFqb2luc2VsX2lu bmVyKG9wZnVuY29pZCwgY29sbGF0aW9uLAotCQkJCQkJCQkgICZ2YXJkYXRhMSwgJnZhcmRh dGEyLAogCQkJCQkJCQkgIG5kMSwgbmQyLAogCQkJCQkJCQkgIGlzZGVmYXVsdDEsIGlzZGVm YXVsdDIsCiAJCQkJCQkJCSAgJnNzbG90MSwgJnNzbG90MiwKQEAgLTIzNzUsNyArMjM3Myw3 IEBAIGVxam9pbnNlbChQR19GVU5DVElPTl9BUkdTKQogCiAJCQlpZiAoIWpvaW5faXNfcmV2 ZXJzZWQpCiAJCQkJc2VsZWMgPSBlcWpvaW5zZWxfc2VtaShvcGZ1bmNvaWQsIGNvbGxhdGlv biwKLQkJCQkJCQkJCSAgICZ2YXJkYXRhMSwgJnZhcmRhdGEyLAorCQkJCQkJCQkJICAgJnZh cmRhdGEyLAogCQkJCQkJCQkJICAgbmQxLCBuZDIsCiAJCQkJCQkJCQkgICBpc2RlZmF1bHQx LCBpc2RlZmF1bHQyLAogCQkJCQkJCQkJICAgJnNzbG90MSwgJnNzbG90MiwKQEAgLTIzODgs NyArMjM4Niw3IEBAIGVxam9pbnNlbChQR19GVU5DVElPTl9BUkdTKQogCQkJCU9pZAkJCWNv bW1vcGZ1bmNvaWQgPSBPaWRJc1ZhbGlkKGNvbW1vcCkgPyBnZXRfb3Bjb2RlKGNvbW1vcCkg OiBJbnZhbGlkT2lkOwogCiAJCQkJc2VsZWMgPSBlcWpvaW5zZWxfc2VtaShjb21tb3BmdW5j b2lkLCBjb2xsYXRpb24sCi0JCQkJCQkJCQkgICAmdmFyZGF0YTIsICZ2YXJkYXRhMSwKKwkJ CQkJCQkJCSAgICZ2YXJkYXRhMSwKIAkJCQkJCQkJCSAgIG5kMiwgbmQxLAogCQkJCQkJCQkJ ICAgaXNkZWZhdWx0MiwgaXNkZWZhdWx0MSwKIAkJCQkJCQkJCSAgICZzc2xvdDIsICZzc2xv dDEsCkBAIC0yNDM2LDcgKzI0MzQsNiBAQCBlcWpvaW5zZWwoUEdfRlVOQ1RJT05fQVJHUykK ICAqLwogc3RhdGljIGRvdWJsZQogZXFqb2luc2VsX2lubmVyKE9pZCBvcGZ1bmNvaWQsIE9p ZCBjb2xsYXRpb24sCi0JCQkJVmFyaWFibGVTdGF0RGF0YSAqdmFyZGF0YTEsIFZhcmlhYmxl U3RhdERhdGEgKnZhcmRhdGEyLAogCQkJCWRvdWJsZSBuZDEsIGRvdWJsZSBuZDIsCiAJCQkJ Ym9vbCBpc2RlZmF1bHQxLCBib29sIGlzZGVmYXVsdDIsCiAJCQkJQXR0U3RhdHNTbG90ICpz c2xvdDEsIEF0dFN0YXRzU2xvdCAqc3Nsb3QyLApAQCAtMjYzMyw3ICsyNjMwLDcgQEAgZXFq b2luc2VsX2lubmVyKE9pZCBvcGZ1bmNvaWQsIE9pZCBjb2xsYXRpb24sCiAgKi8KIHN0YXRp YyBkb3VibGUKIGVxam9pbnNlbF9zZW1pKE9pZCBvcGZ1bmNvaWQsIE9pZCBjb2xsYXRpb24s Ci0JCQkgICBWYXJpYWJsZVN0YXREYXRhICp2YXJkYXRhMSwgVmFyaWFibGVTdGF0RGF0YSAq dmFyZGF0YTIsCisJCQkgICBWYXJpYWJsZVN0YXREYXRhICpyaHNfdmFyZGF0YSwKIAkJCSAg IGRvdWJsZSBuZDEsIGRvdWJsZSBuZDIsCiAJCQkgICBib29sIGlzZGVmYXVsdDEsIGJvb2wg aXNkZWZhdWx0MiwKIAkJCSAgIEF0dFN0YXRzU2xvdCAqc3Nsb3QxLCBBdHRTdGF0c1Nsb3Qg KnNzbG90MiwKQEAgLTI2NjIsMTEgKzI2NTksMTEgQEAgZXFqb2luc2VsX3NlbWkoT2lkIG9w ZnVuY29pZCwgT2lkIGNvbGxhdGlvbiwKIAkgKiBncmVhdCwgbWF5YmUsIGJ1dCBpdCBkaWRu J3QgY29tZSBvdXQgb2Ygbm93aGVyZSBlaXRoZXIuICBUaGlzIGlzIG1vc3QKIAkgKiBoZWxw ZnVsIHdoZW4gdGhlIGlubmVyIHJlbGF0aW9uIGlzIGVtcHR5IGFuZCBjb25zZXF1ZW50bHkg aGFzIG5vIHN0YXRzLgogCSAqLwotCWlmICh2YXJkYXRhMi0+cmVsKQorCWlmIChyaHNfdmFy ZGF0YS0+cmVsKQogCXsKLQkJaWYgKG5kMiA+PSB2YXJkYXRhMi0+cmVsLT5yb3dzKQorCQlp ZiAobmQyID49IHJoc192YXJkYXRhLT5yZWwtPnJvd3MpCiAJCXsKLQkJCW5kMiA9IHZhcmRh dGEyLT5yZWwtPnJvd3M7CisJCQluZDIgPSByaHNfdmFyZGF0YS0+cmVsLT5yb3dzOwogCQkJ aXNkZWZhdWx0MiA9IGZhbHNlOwogCQl9CiAJfQotLSAKMi4zNC4xCgo= --------------Nqo9DALGO0un850G0z4IhyCu--