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 1tLhoT-00GSuX-T9 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Dec 2024 11:57:02 +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 1tLhoQ-00ASQY-A8 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Dec 2024 11:56:59 +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 1tLhoP-00ASPS-TK for pgsql-hackers@lists.postgresql.org; Thu, 12 Dec 2024 11:56:59 +0000 Received: from forward502b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d502]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tLhoN-002SEX-G4 for pgsql-hackers@lists.postgresql.org; Thu, 12 Dec 2024 11:56:58 +0000 Received: from mail-nwsmtp-smtp-production-main-69.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-69.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:202e:0:640:b50d:0]) by forward502b.mail.yandex.net (Yandex) with ESMTPS id 1399761AAC; Thu, 12 Dec 2024 14:56:54 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-69.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id mumrPqHMcKo0-ZQKCZ8uu; Thu, 12 Dec 2024 14:56:53 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tantorlabs.com; s=mail; t=1734004613; bh=bJn0Ss3hUx4GHzMciPOpHUrOtQ3FmAxJOPudFEc/88s=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=jrgELvadozbkWJHZ3UxNh8dvHaAk534/C+b/HFwHWgd+PPVk+LhwqkRii7RNf/3By KgPyyHaFInOgwFuWj0p89TIel7xhZlPjMCFBbASM1o+ZHZZ3U1S7uXXOCE29lu6w79 hGSDDQdtx0iKZqpR60Ef1kZWXYSGyedtnpa1bvMk= Authentication-Results: mail-nwsmtp-smtp-production-main-69.iva.yp-c.yandex.net; dkim=pass header.i=@tantorlabs.com Content-Type: multipart/mixed; boundary="------------JeoA0qtG0kcdJ69wKJZtb4Xx" Message-ID: Date: Thu, 12 Dec 2024 14:56:47 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: explain analyze rows=%.0f To: Daniel Gustafsson , Ibrar Ahmed Cc: "Gregory Stark (as CFM)" , Tom Lane , Robert Haas , Amit Kapila , Justin Pryzby , Peter Geoghegan , vignesh C , "David G. Johnston" , pgsql-hackers@lists.postgresql.org References: <20220707222015.GD13040@telsasoft.com> <2954811.1667711530@sss.pgh.pa.us> 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. --------------JeoA0qtG0kcdJ69wKJZtb4Xx Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 01.08.2023 23:29, Daniel Gustafsson wrote: >> On 3 Jul 2023, at 18:34, Daniel Gustafsson wrote: >> >>> On 8 Jun 2023, at 19:49, Ibrar Ahmed wrote: >>> On Mon, Mar 20, 2023 at 7:56 PM Gregory Stark (as CFM) > wrote: >>> This patch was marked Returned with Feedback and then later Waiting on >>> Author. And it hasn't had any updates since January. What is the state >>> on this feedback? If it's already done we can set the patch to Ready >>> for Commit and if not do you disagree with the proposed changes? >>> >>> If there is a consensus to modify the test cases' output, I am willing to >>> make the necessary changes and adjust the patch accordingly. However, >>> if there is a preference to keep the output of certain test cases unchanged, >>> I can rebase and modify the patch accordingly to accommodate those preferences. >> As there hasn't been any other comments I suggest updating your patch to >> address Tom's comments to see if we can make progress here. > Since there hasn't been any updates here, and the thread has been stalled, I'm > marking this returned with feedback. Please feel free to resubmit a version of > the patch addressing comments to a future CF. > > -- > Daniel Gustafsson > > > Hi everybody, When the total number of returned tuples is less than the number of loops currently shows 'rows = 0'. This can mislead users into thinking that no rows were returned at all, even though some might have appeared occasionally. For example, if there is 1 tuple over 100 loops, the average is 0.01 rows per loop, but as displayed it simply looks like zero. To clarify this situation, it has been suggested that display rows with two decimal places in scenarios where 'loops > 1 && ntuples < loops'. In other words, show something like 'rows = 0.01' instead of 'rows=0'. This minor change would make it evident that rows did occur, just very infrequently. For all other cases, the current formatting would remain the same. This approach aims to provide a more nuanced understanding of query execution behavior without introducing unnecessary complexity or false precision. I would appreciate any thoughts or feedback on this proposal. -- Best regards, Ilia Evdokimov, Tantor Labs LLC. --------------JeoA0qtG0kcdJ69wKJZtb4Xx Content-Type: text/x-patch; charset=UTF-8; name="explain_float_row_v4.patch" Content-Disposition: attachment; filename="explain_float_row_v4.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCBhMjAxZWQzMDgyLi5iM2Y3ZmE4NzQzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xOTgxLDE0ICsxOTgxLDE0IEBAIEV4cGxh aW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkJaWYg KGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKIAkJeworCQkJYXBwZW5kU3Ry aW5nSW5mbyhlcy0+c3RyLCAiIChhY3R1YWwiKTsKIAkJCWlmIChlcy0+dGltaW5nKQotCQkJ CWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwKLQkJCQkJCQkJICIgKGFjdHVhbCB0aW1lPSUu M2YuLiUuM2Ygcm93cz0lLjBmIGxvb3BzPSUuMGYpIiwKLQkJCQkJCQkJIHN0YXJ0dXBfbXMs IHRvdGFsX21zLCByb3dzLCBubG9vcHMpOworCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwgIiB0aW1lPSUuM2YuLiUuM2YiLCBzdGFydHVwX21zLCB0b3RhbF9tcyk7CisKKwkJCWlm IChubG9vcHMgPiAxICYmIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+bnR1cGxlcyA8IG5sb29w cykKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsIiByb3dzPSUuMmYgbG9vcHM9JS4y ZikiLCByb3dzLCBubG9vcHMpOwogCQkJZWxzZQotCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMt PnN0ciwKLQkJCQkJCQkJICIgKGFjdHVhbCByb3dzPSUuMGYgbG9vcHM9JS4wZikiLAotCQkJ CQkJCQkgcm93cywgbmxvb3BzKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsIiBy b3dzPSUuMGYgbG9vcHM9JS4wZikiLCByb3dzLCBubG9vcHMpOwogCQl9CiAJCWVsc2UKIAkJ ewpAQCAtMTk5OSw4ICsxOTk5LDE2IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0 YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVh bCBUb3RhbCBUaW1lIiwgIm1zIiwgdG90YWxfbXMsCiAJCQkJCQkJCQkgMywgZXMpOwogCQkJ fQotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBSb3dzIiwgTlVMTCwgcm93cywg MCwgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBMb29wcyIsIE5VTEws IG5sb29wcywgMCwgZXMpOworCQkJaWYgKG5sb29wcyA+IDEgJiYgcGxhbnN0YXRlLT5pbnN0 cnVtZW50LT5udHVwbGVzIDwgbmxvb3BzKQorCQkJeworCQkJCUV4cGxhaW5Qcm9wZXJ0eUZs b2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJvd3MsIDIsIGVzKTsKKwkJCQlFeHBsYWluUHJv cGVydHlGbG9hdCgiQWN0dWFsIExvb3BzIiwgTlVMTCwgbmxvb3BzLCAyLCBlcyk7CisJCQl9 CisJCQllbHNlCisJCQl7CisJCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBSb3dz IiwgTlVMTCwgcm93cywgMCwgZXMpOworCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1 YWwgTG9vcHMiLCBOVUxMLCBubG9vcHMsIDAsIGVzKTsKKwkJCX0KIAkJfQogCX0KIAllbHNl IGlmIChlcy0+YW5hbHl6ZSkKQEAgLTIwNTIsMTQgKzIwNjAsMTQgQEAgRXhwbGFpbk5vZGUo UGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkJCWlmIChlcy0+Zm9y bWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCiAJCQl7CiAJCQkJRXhwbGFpbkluZGVudFRl eHQoZXMpOworCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgImFjdHVhbCIpOwogCQkJ CWlmIChlcy0+dGltaW5nKQotCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsCi0JCQkJ CQkJCQkgImFjdHVhbCB0aW1lPSUuM2YuLiUuM2Ygcm93cz0lLjBmIGxvb3BzPSUuMGZcbiIs Ci0JCQkJCQkJCQkgc3RhcnR1cF9tcywgdG90YWxfbXMsIHJvd3MsIG5sb29wcyk7CisJCQkJ CWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiB0aW1lPSUuM2YuLiUuM2YiLCBzdGFydHVw X21zLCB0b3RhbF9tcyk7CisKKwkJCQlpZiAobmxvb3BzID4gMSAmJiBwbGFuc3RhdGUtPmlu c3RydW1lbnQtPm50dXBsZXMgPCBubG9vcHMpCisJCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMt PnN0ciwiIHJvd3M9JS4yZiBsb29wcz0lLjJmKSIsIHJvd3MsIG5sb29wcyk7CiAJCQkJZWxz ZQotCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsCi0JCQkJCQkJCQkgImFjdHVhbCBy b3dzPSUuMGYgbG9vcHM9JS4wZlxuIiwKLQkJCQkJCQkJCSByb3dzLCBubG9vcHMpOworCQkJ CQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsIiByb3dzPSUuMGYgbG9vcHM9JS4wZikiLCBy b3dzLCBubG9vcHMpOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtMjA3MCw4ICsyMDc4LDE3 IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMs CiAJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgVG90YWwgVGltZSIsICJtcyIs CiAJCQkJCQkJCQkJIHRvdGFsX21zLCAzLCBlcyk7CiAJCQkJfQotCQkJCUV4cGxhaW5Qcm9w ZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJvd3MsIDAsIGVzKTsKLQkJCQlFeHBs YWluUHJvcGVydHlGbG9hdCgiQWN0dWFsIExvb3BzIiwgTlVMTCwgbmxvb3BzLCAwLCBlcyk7 CisKKwkJCQlpZiAobmxvb3BzID4gMSAmJiBwbGFuc3RhdGUtPmluc3RydW1lbnQtPm50dXBs ZXMgPCBubG9vcHMpCisJCQkJeworCQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiQWN0dWFs IFJvd3MiLCBOVUxMLCByb3dzLCAyLCBlcyk7CisJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0 KCJBY3R1YWwgTG9vcHMiLCBOVUxMLCBubG9vcHMsIDIsIGVzKTsKKwkJCQl9CisJCQkJZWxz ZQorCQkJCXsKKwkJCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkFjdHVhbCBSb3dzIiwgTlVM TCwgcm93cywgMCwgZXMpOworCQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiQWN0dWFsIExv b3BzIiwgTlVMTCwgbmxvb3BzLCAwLCBlcyk7CisJCQkJfQogCQkJfQogCiAJCQlFeHBsYWlu Q2xvc2VXb3JrZXIobiwgZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w YXJ0aXRpb25fcHJ1bmUub3V0CmluZGV4IGM1MmJjNDBlODEuLmNmNTA3NzZlZjcgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKQEAg LTMwNDEsMTYgKzMwNDEsMTYgQEAgc2VsZWN0ICogZnJvbSB0YmwxIGlubmVyIGpvaW4gdHBy dCBvbiB0YmwxLmNvbDEgPiB0cHJ0LmNvbDE7CiAKIGV4cGxhaW4gKGFuYWx5emUsIGNvc3Rz IG9mZiwgc3VtbWFyeSBvZmYsIHRpbWluZyBvZmYsIGJ1ZmZlcnMgb2ZmKQogc2VsZWN0ICog ZnJvbSB0YmwxIGlubmVyIGpvaW4gdHBydCBvbiB0YmwxLmNvbDEgPSB0cHJ0LmNvbDE7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBM b29wIChhY3R1YWwgcm93cz0zIGxvb3BzPTEpCiAgICAtPiAgU2VxIFNjYW4gb24gdGJsMSAo YWN0dWFsIHJvd3M9NSBsb29wcz0xKQotICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MSBs b29wcz01KQorICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MC42MCBsb29wcz01LjAwKQog ICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAobmV2 ZXIgZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEu Y29sMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQyX2lkeCBvbiB0cHJ0 XzIgKGFjdHVhbCByb3dzPTEgbG9vcHM9MikKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChjb2wxID0gdGJsMS5jb2wxKQotICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBy dDNfaWR4IG9uIHRwcnRfMyAoYWN0dWFsIHJvd3M9MCBsb29wcz0zKQorICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdHBydDNfaWR4IG9uIHRwcnRfMyAoYWN0dWFsIHJvd3M9MC4z MyBsb29wcz0zLjAwKQogICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPSB0Ymwx LmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0NF9pZHggb24gdHBy dF80IChuZXZlciBleGVjdXRlZCkKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wx ID0gdGJsMS5jb2wxKQo= --------------JeoA0qtG0kcdJ69wKJZtb4Xx--