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 1vs0E1-00HRJ8-0n for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Feb 2026 15:09:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vs0Dx-0032lu-2U for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Feb 2026 15:09:21 +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 1vs0Dx-0032lj-1R for pgsql-hackers@lists.postgresql.org; Mon, 16 Feb 2026 15:09:21 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vs0Dv-000000012Ju-2hDH for pgsql-hackers@postgresql.org; Mon, 16 Feb 2026 15:09:21 +0000 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2aae146b604so24432105ad.3 for ; Mon, 16 Feb 2026 07:09:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771254557; cv=none; d=google.com; s=arc-20240605; b=Skg+/Ky1aqLWhrJTZkvRqg7dkuSvZpsjfOujsn474DxA6XjWUGzCoXaBauhyjhhcDw aLAI6Ul5CRISvfLz+Xv/qc72jXg1dLZzUtxLVuyYRzixsGCVMnxG+1DUmHi24snfuuQX yS9LApPS1sVexWfgpy49erkLbsOSxhUtHzMO1KwLf/5c1iAzjtXwGfvtepoFSYyPjNCr RrZ+8IJzJonPPPZl7vU07D+y0B1rbqJemw/mtG/5iihDjVxKUCeI+b72VvsFSDSIIwJp uJNkRL1A3tjlIs15B8c58WAzOuPvp3633U38wwBBzw0npJJ6Kktc559XjT6dc8a+GZau 11HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=ynuATAib9B6Fbc1P9PVa03ffQgM00gUp4ErK5eJM5P4=; fh=A6SVKjJxfxqgehC5GMbP+eacfcLU7omOPaRrVxQlrnY=; b=DxAxTF2zbg+BWGv2//bavgoApDSF8wR7M/boE+8XQ6wvghIVhWJZYzHcKbu/PqDC/e NmjXRuvCps/PC6iQPKwfq8Ix205xpTdjUjRKEhrvH4D19+h1E1zOQV2YJK8c/yZUTzZQ 1ARYU1xJwueOFGnU2Y9LqW/NZClmhVQXO6BOnzhayF5DkRa+6YTZfjDdViEmSUQj1nue g51ovE06Z4Eco/hxkfp0N3VrHYvCh/K/DpM7j7oEXtTpGrbpN5g0phsGRKdSSpz/m+zy Eqi7ziSHts/6iGXqy3NFCqfSL8Crdk/SoKrsZI8YDLIcRog5eGRB6HHoM+a91I4ZwO60 gDAg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771254557; x=1771859357; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ynuATAib9B6Fbc1P9PVa03ffQgM00gUp4ErK5eJM5P4=; b=AYowj/rFcN2L9QdweqO512/wdYBqLAKoyoL5gN8kZ9XImmMJDOOxnzat0I7BOUjqS9 1cGsj+U0vfJY6G4RifefdM4LzaU4ca/x+tdA/wjNZNIM8cHa7bQuiJByvzD3J0ALkFwT UQQqVUj4hlgLDqCEg0ymdzdPB/1AdQ4TWi2LUiQ9iRf9MHRgiquZWaieG1eg8lZYSNeM lDVGFqOeHQLvgvhwX3BMQiudVdhISSydRqWFgXZvO+dBm3wL30d5oR0a4Ap5CgIF7tZK hmNw73KDpoqArYMj1SO3vBsoeh3Xjxuz53VYhFaPuQdWgliVrlEkwZ5KX1luph0u/0gY LnLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771254557; x=1771859357; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ynuATAib9B6Fbc1P9PVa03ffQgM00gUp4ErK5eJM5P4=; b=p9ttE+MhtBe0nmPt72WHfxYd8xmItd0lt5vCj/tJ2u4WDitUlBe6S+HHp9UiNWi4iF pK8H3Gf9RP8753yL44gIbScrhRPvOw/sFSTh83d03C5Ei3jZBnnOpltbl0brKgPwQYVR rtnlNKotLLITUKRnOpwQRlr2PjTqbmKsTxgh9OdHeJ99RgEx2JHpa/L4JIIXnQLYXLes 56pR7dWtNzuvB4B6HS3IGPR240pVkl/Tvbl1RronORnKRBDbyCD4HSeiej2BPh2wbpLg Gv6ZfwqWjJERYo0D0nuNRVVbRLGBeXtQftSrkEB2BSVrUu4GTJ5zvUM41y/4BQjUSREG d0vw== X-Forwarded-Encrypted: i=1; AJvYcCW9PoC7LdV7zIR7PHERTOpgLZQ2IcNWFDFBMlVZJwPtlWt3Tj5rpkz00Bpl8G+7btxaOLmYGrlYBGAUywVg@postgresql.org X-Gm-Message-State: AOJu0YwyEi58cP/XdU8hG4Jpmk6EoLu0/GBnNV5EhmD2dYrhJ7+PC+rJ 3mZqex+xp1mN8u+PyaiFbRDFP125hPmZhiBJIEjYFvGlSbPQtM/JhfXs+/azXrgocRWdsklf417 zsq60E/kQjL4vsAVXhi96+8hhWoGVed0= X-Gm-Gg: AZuq6aJpJKmo8DJtNdbf8PdSsola2JG/XzDAvAAReB7s/3MVaR9sYXCb+b+gvwp6rRy jOtvD3zJoxaI0S6U8G5ZT/W5ioAGZl4apJdJPm61MafFsr+EujMretAFCUdKl8fMDmXvnnuUDso NBwARDb/0VyWAr/TP7YbcxmaOWYI1Pb0S2vCQCObLtNPcnbBCZhHzV2r3sQZ8pOOjdh77MgcZZy 1BiyBzHwiADQCaTnqvhNUgYzPsm1iloUAXUM7O8cW1Hg0+n+StmJAMjv9rg9PESMWUJ0Si9A5TB 2OZCkD8IqUNdYmyf67VCwsm4xGVV/XcGpA7MQy47 X-Received: by 2002:a17:902:f54c:b0:2aa:f0ec:3701 with SMTP id d9443c01a7336-2ab4cf4f453mr108142095ad.2.1771254557129; Mon, 16 Feb 2026 07:09:17 -0800 (PST) MIME-Version: 1.0 References: <20260214.092310.1353606038244245395.ishii@postgresql.org> <20260215.180652.676783304925959084.ishii@postgresql.org> In-Reply-To: <20260215.180652.676783304925959084.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Tue, 17 Feb 2026 00:09:04 +0900 X-Gm-Features: AaiRm51ljM0XsZdUMt0sL6UrWeZYo4vUXUtVuRclyM6YPaCKXQpvVjdS3euOoQM Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="000000000000af6616064af2569f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000af6616064af2569f Content-Type: multipart/alternative; boundary="000000000000af6615064af2569d" --000000000000af6615064af2569d Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Thanks for rebasing to v43! I noticed the Cirrus CI 32-bit build (test_world_32) failed on three tests, all due to the same root cause in rpr_explain.out: Sort Method: quicksort Memory: 27kB (expected, 64-bit) Sort Method: quicksort Memory: 22kB (actual, 32-bit) The rpr_explain_filter() function was already normalizing the RPR Storage memory values, but missed the Sort node's "Memory: NNkB" which also varies between 32-bit and 64-bit due to pointer/struct size differences. The attached incremental patch adds Sort Method memory normalization to rpr_explain_filter(), using the same approach as the existing Storage and Maximum Storage filters. > The node serialization functions (141 lines, 0% coverage) are the > > largest untested area. I'm not sure how to trigger these paths > > in the regression test framework. Any suggestions? > > I think we can leave it as it is, until reluctant quantifier is > implemented. > Agreed. > > I'll send a separate email within a few days listing the FIXME > > issues and other unresolved items from the mailing list discussion > > for your review. > > Looking forward to reading your email. Best regards, Henson --000000000000af6615064af2569d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

Thanks for rebasing to = v43!

I noticed the Cirrus CI 32-bit build (test_world_32) failed on = three
tests, all due to the same root cause in rpr_explain.out:

= =C2=A0 Sort Method: quicksort =C2=A0Memory: 27kB =C2=A0(expected, 64-bit)=C2=A0 Sort Method: quicksort =C2=A0Memory: 22kB =C2=A0(actual, 32-bit)
The rpr_explain_filter() function was already normalizing the RPR
= Storage memory values, but missed the Sort node's "Memory: NNkB&qu= ot;
which also varies between 32-bit and 64-bit due to pointer/structsize differences.

The attached incremental patch adds Sort Method m= emory normalization
to rpr_explain_filter(), using the same approach as = the existing
Storage and Maximum Storage filters.
=
> The node serialization functions (141 lines, 0% coverage) are the
> largest untested area.=C2=A0 I'm not sure how to trigger these pat= hs
> in the regression test framework.=C2=A0 Any suggestions?

I think we can leave it as it is, until reluctant quantifier is
implemented.

Agreed.
=C2=A0
> I'll send a separate email within a few days listing the FIXME
> issues and other unresolved items from the mailing list discussion
> for your review.

Looking forward to reading your email.

Best rega= rds,
Henson
--000000000000af6615064af2569d-- --000000000000af6616064af2569f Content-Type: text/plain; charset="US-ASCII"; name="v43-fix-rpr-explain-32bit.txt" Content-Disposition: attachment; filename="v43-fix-rpr-explain-32bit.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlpb72u50 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKaW5kZXggZjIzZDA2ZjZk NTkuLmJmZTRlZTJiYTdkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9leHBsYWluLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWlu Lm91dApAQCAtMzMsNyArMzMsNyBAQAogLS0gICBERUZJTkUgRXhwcmVzc2lvbiBWYXJpYXRpb25z CiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEZp bHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgU3RvcmFnZSBtZW1vcnkgdmFsdWVzIG9ubHkgKG5v dCBORkEgc3RhdGlzdGljcykuCistLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIHBsYXRm b3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRpc3RpY3MpLgogLS0gTkZB IHN0YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFuZ2UgYmV0d2VlbiBwbGF0Zm9ybXM7IGlmIHRoZXkg ZG8sIGl0IGNvdWxkCiAtLSBpbmRpY2F0ZSBpc3N1ZXMgc3VjaCBhcyB1bmluaXRpYWxpemVkIG1l bW9yeSBhY2Nlc3MuCiAtLSBXb3JrcyBmb3IgdGV4dCwgSlNPTiwgYW5kIFhNTCBmb3JtYXRzLgpA QCAtNDUsNyArNDUsNyBAQCBkZWNsYXJlCiBiZWdpbgogICAgIGZvciBsbiBpbiBleGVjdXRlICQx CiAgICAgbG9vcAotICAgICAgICAtLSBOb3JtYWxpemUgbWVtb3J5IHNpemUgaW4gU3RvcmFnZSBs aW5lIG9ubHkgKHBsYXRmb3JtLWRlcGVuZGVudCkKKyAgICAgICAgLS0gTm9ybWFsaXplIHBsYXRm b3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzCiAgICAgICAgIC0tIEtlZXAgTkZBIHN0YXRpc3Rp Y3MgbnVtYmVycyB1bmNoYW5nZWQgKHRoZXkgYXJlIHRlc3QgYXNzZXJ0aW9ucykKIAogICAgICAg ICAtLSBUZXh0IGZvcm1hdDogIlN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxOGtC IgpAQCAtNjMsNiArNjMsMTEgQEAgYmVnaW4KICAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBs YWNlKGxuLCAnPE1heGltdW0tU3RvcmFnZT5cZCs8L01heGltdW0tU3RvcmFnZT4nLCAnPE1heGlt dW0tU3RvcmFnZT4wPC9NYXhpbXVtLVN0b3JhZ2U+JywgJ2cnKTsKICAgICAgICAgZW5kIGlmOwog CisgICAgICAgIC0tIFNvcnQgTWV0aG9kIG1lbW9yeSBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgKDMy LWJpdCB2cyA2NC1iaXQpCisgICAgICAgIGlmIGxuIH4gJ1NvcnQgTWV0aG9kOi4qTWVtb3J5Oicg dGhlbgorICAgICAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICdNZW1vcnk6IFxkK2tC JywgJ01lbW9yeTogTmtCJyk7CisgICAgICAgIGVuZCBpZjsKKwogICAgICAgICByZXR1cm4gbmV4 dCBsbjsKICAgICBlbmQgbG9vcDsKIGVuZDsKQEAgLTE2MjUsNyArMTYzMCw3IEBAIFdJTkRPVyB3 IEFTICgKICAgIE5GQTogNTQgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTggc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgU29ydCAoYWN0dWFsIHJvd3M9OTAuMDAgbG9vcHM9MSkKICAgICAg ICAgIFNvcnQgS2V5OiBwLnAKLSAgICAgICAgIFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9y eTogMjdrQgorICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiBOa0IKICAg ICAgICAgIC0+ICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJvd3M9OTAuMDAgbG9vcHM9MSkKICAgICAg ICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBwIChhY3R1YWwg cm93cz0zLjAwIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgdiAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MykKQEAgLTE2ODIsNyAr MTY4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgIE5GQTogMTkgYWJzb3JiZWQgKGxlbiAxLzEvMS4w KSwgNSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBTb3J0IChhY3R1YWwgcm93cz01MC4w MCBsb29wcz0xKQogICAgICAgICAgU29ydCBLZXk6IChDQVNFIFdIRU4gKHYudiA8PSAyNSkgVEhF TiAxIEVMU0UgMiBFTkQpCi0gICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6 IDI2a0IKKyAgICAgICAgIFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogTmtCCiAgICAg ICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgdiAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKICgxMiByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5z cWwKaW5kZXggZjhjOGY2MmU1OTQuLmVhOGMzOWI5OTFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2V4cGxhaW4uc3FsCkBAIC0zNCw3ICszNCw3IEBACiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3Rp Y3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAotLS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6 ZSBTdG9yYWdlIG1lbW9yeSB2YWx1ZXMgb25seSAobm90IE5GQSBzdGF0aXN0aWNzKS4KKy0tIEZp bHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgcGxhdGZvcm0tZGVwZW5kZW50IG1lbW9yeSB2YWx1 ZXMgKG5vdCBORkEgc3RhdGlzdGljcykuCiAtLSBORkEgc3RhdGlzdGljcyBzaG91bGQgbm90IGNo YW5nZSBiZXR3ZWVuIHBsYXRmb3JtczsgaWYgdGhleSBkbywgaXQgY291bGQKIC0tIGluZGljYXRl IGlzc3VlcyBzdWNoIGFzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFjY2Vzcy4KIC0tIFdvcmtzIGZv ciB0ZXh0LCBKU09OLCBhbmQgWE1MIGZvcm1hdHMuCkBAIC00Niw3ICs0Niw3IEBAIGRlY2xhcmUK IGJlZ2luCiAgICAgZm9yIGxuIGluIGV4ZWN1dGUgJDEKICAgICBsb29wCi0gICAgICAgIC0tIE5v cm1hbGl6ZSBtZW1vcnkgc2l6ZSBpbiBTdG9yYWdlIGxpbmUgb25seSAocGxhdGZvcm0tZGVwZW5k ZW50KQorICAgICAgICAtLSBOb3JtYWxpemUgcGxhdGZvcm0tZGVwZW5kZW50IG1lbW9yeSB2YWx1 ZXMKICAgICAgICAgLS0gS2VlcCBORkEgc3RhdGlzdGljcyBudW1iZXJzIHVuY2hhbmdlZCAodGhl eSBhcmUgdGVzdCBhc3NlcnRpb25zKQogCiAgICAgICAgIC0tIFRleHQgZm9ybWF0OiAiU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IDE4a0IiCkBAIC02NCw2ICs2NCwxMSBAQCBiZWdp bgogICAgICAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICc8TWF4aW11bS1TdG9yYWdl PlxkKzwvTWF4aW11bS1TdG9yYWdlPicsICc8TWF4aW11bS1TdG9yYWdlPjA8L01heGltdW0tU3Rv cmFnZT4nLCAnZycpOwogICAgICAgICBlbmQgaWY7CiAKKyAgICAgICAgLS0gU29ydCBNZXRob2Qg bWVtb3J5IGlzIHBsYXRmb3JtLWRlcGVuZGVudCAoMzItYml0IHZzIDY0LWJpdCkKKyAgICAgICAg aWYgbG4gfiAnU29ydCBNZXRob2Q6LipNZW1vcnk6JyB0aGVuCisgICAgICAgICAgICBsbiA6PSBy ZWdleHBfcmVwbGFjZShsbiwgJ01lbW9yeTogXGQra0InLCAnTWVtb3J5OiBOa0InKTsKKyAgICAg ICAgZW5kIGlmOworCiAgICAgICAgIHJldHVybiBuZXh0IGxuOwogICAgIGVuZCBsb29wOwogZW5k Owo= --000000000000af6616064af2569f--