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 1u4zZK-00AWfr-PT for pgsql-bugs@arkaria.postgresql.org; Wed, 16 Apr 2025 10:00:35 +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 1u4zZI-00BFA2-Bx for pgsql-bugs@arkaria.postgresql.org; Wed, 16 Apr 2025 10:00:33 +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 1u4zZI-00BF7n-0w for pgsql-bugs@lists.postgresql.org; Wed, 16 Apr 2025 10:00:32 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u4zZF-000NAH-2M for pgsql-bugs@lists.postgresql.org; Wed, 16 Apr 2025 10:00:32 +0000 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-39c2688619bso4264334f8f.1 for ; Wed, 16 Apr 2025 03:00:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744797630; x=1745402430; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=nqvoGbmVsP6drcmNxNUHTJ8e/Ld0dYBDhtlwVOmRIx4=; b=diEOQ5sDy1Q1rVBZjsszVRCk9XpR9j4uEZweYbl/4we84ZaFqzNWSU3/90mk3oU68I lxRmqukHncHqGO3UdgEdAF46vhgprppz4Fgb+G9NBGmRPqvL8YnA0W7JBO6uk0Xu0unc tmqB1oGvLlSLWL3DVMoBJiwvMjH+jT52IfhXWMfvNdVhSU+c6gexApaCH0tFP5atzbiC qz5oPTkI8lVyauYziTqW2HJAfucE/ZpOJk3igwGSDRZjgys8UQq8evxppfqJkQcC7Vfv VdqdZwGyY5elGuoHONnjwVuxtNnK1RBSsV2ajWtNbkO4ibVpL7PBgAbYLoW42a5CaGkm xt1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744797630; x=1745402430; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=nqvoGbmVsP6drcmNxNUHTJ8e/Ld0dYBDhtlwVOmRIx4=; b=tGif75cZ0u9GGMbcA5dMflUoM71bCfFHWYLj3hIVmgJgE4cds/hKv6Bfhbp7fJr4I9 vdcUTk+qI+rORmdfYlmEHvWCiWyfIOdHzGt9X222uVDLO3bBRTPyi4kqnpQnO/Kb91vi OXh4LtCCd1nrneHOmWfgxTFsGXAR6tCTLbA9oQ16K6qHAIhVWLfw202ieDrP1W9eKl/4 KrRUkOfLr5SHAroppLBIaYbsFXXyneP62mGxIGDlkchzaYOb1SJwvzL4GU7r6kaBjFSF uIhYcD3TaFnvPkZvJ5TrUv6c+4ffRQx+BrCAYTWtPcVrgORjuqNiVWYIkGnyd4uHY7Fu Xp7Q== X-Forwarded-Encrypted: i=1; AJvYcCUNAIvImUDX/IsaCyvd9NTjbagPeDaYAEADjRDbBobAR+FUpky3HTopjsvoxb1ByYujGstwZ4SVcWTI@lists.postgresql.org X-Gm-Message-State: AOJu0YzytLlocQzsGVG05aERLkUpY39G0MuL6scaJUEDbSTE989m84ga qINYCu2JWC2ClKLllLTnfb+omqjCh+kZrjcNxr4rb4pA8itn4kd2 X-Gm-Gg: ASbGncucrmyMW0Y8LrIDc5xX2brNvNH7F+e6xqu/Tfvq8r77pcfODIXDwJVVq0Q/QP0 7OpTq2XnFGJp8U+sbbfc2a54lHlpae7YyxSgNx5foCdVUGckZsXMyH1vjUlQpqXuy2uLOj+Hmqe bRhAVCKXpYLZjCC2C+lhCyh9Z8YVjemZErEeCKwIobw3Hzg/Ed8E5A1q5ESxVhMgZgZvx3EdOLr oGw4OC7sxwtKT2U/hY2ffDK4XFv1+Wcf55MLtrR2acIqs3/WXd7rJdAkXA6ILO4xtTGoGHJFNT4 LMPb9swztTBVtw6F1BGZVML2mOfmOxQIMUDso6tGBzMmpCJinNhyjNq7xNF1OXcn12Nvlv8VmM8 = X-Google-Smtp-Source: AGHT+IECn/gJlu9htVDjbg/hyv+qGImmjayGQYXpQdtSn9dFQM/je8nvfMIa/9SFG0YG2xCH2NyuXQ== X-Received: by 2002:a5d:5f82:0:b0:39e:e217:28e7 with SMTP id ffacd0b85a97d-39ee5b12f5fmr1059076f8f.6.1744797629273; Wed, 16 Apr 2025 03:00:29 -0700 (PDT) Received: from [192.168.0.89] (84.123.232.230.dyn.user.ono.com. [84.123.232.230]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39eae979637sm16949793f8f.53.2025.04.16.03.00.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Apr 2025 03:00:28 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------NEmBUMk6jiBpcuB1ex00Pu3S" Message-ID: <7cab95a3-0358-4102-96d1-8c94ff3c6fdb@gmail.com> Date: Wed, 16 Apr 2025 12:00:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: BUG #18885: ERROR: corrupt MVNDistinct entry - 2 From: Andrei Lepikhov To: Alexander Korotkov Cc: tharakan@gmail.com, pgsql-bugs@lists.postgresql.org, PG Bug reporting form , Tomas Vondra References: <18885-da51324078588253@postgresql.org> Content-Language: en-AU 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. --------------NEmBUMk6jiBpcuB1ex00Pu3S Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/14/25 16:41, Andrei Lepikhov wrote: > On 4/12/25 00:30, Alexander Korotkov wrote: >> When you use add_unique_group_var() which keeps varinfos unique then >> you can no longer expect that varinfos have the same order as >> origin_rinfos. > Ok, here is a patch that considers this issue. Now GroupVarInfo tracks > source RestrictInfo. Not sure it is an ideal approach, but we don't need > to synchronise the restrictions and corresponding varinfos. This is the new version of the patch. I don't like the previous version because it was too invasive. Also, add_unique_group_var checks "known equal" keys. It is not applicable in the current case, of course, but it still seems suspicious: equality expressions may be applied at an upper level of the join tree, and equality doesn't exist at this specific place yet. Being correct in the case of GROUP-BY operator estimation, such conjecture may distort estimation in the middle of the join tree. With the current patch, we just stay away from that doubtful code. -- regards, Andrei Lepikhov --------------NEmBUMk6jiBpcuB1ex00Pu3S Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Make-the-necessary-preparations-before-estimating.patch" Content-Disposition: attachment; filename*0="v1-0001-Make-the-necessary-preparations-before-estimating.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiNTVhODRjNWI3ZDZmODY0MDlhY2I4NzI5MTk4NmJmNmI3NzE0ZjBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IFRodSwgMTAgQXByIDIwMjUgMTQ6MTY6NDQgKzAyMDAKU3ViamVj dDogW1BBVENIIHYxXSBNYWtlIHRoZSBuZWNlc3NhcnkgcHJlcGFyYXRpb25zIGJlZm9yZSBl c3RpbWF0aW5nIHRoZSBoYXNoCiBqb2luIGJ1Y2tldCBzaXplLgoKVG8gZXN0aW1hdGUgd2l0 aCBleHRlbmRlZCBzdGF0aXN0aWNzLCBpdCBpcyBuZWNlc3NhcnkgdG8gY2xlYXIKdGhlIHZh cm51bGxpbmdyZWxzIGZpZWxkIGluIHRoZSBleHByZXNzaW9uLCBhbmQgZHVwbGljYXRlcyBh cmUgbm90IGFsbG93ZWQKaW4gdGhlIEdyb3VwVmFySW5mbyBsaXN0LgotLS0KIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQgfCAyOCAr KysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19l eHQuc3FsICAgICAgfCAxMSArKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDY1IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCmluZGV4IDU4OGQ5OTFmYTU3 Li4yZmQxZTE3N2MyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTM4NTAs NiArMzg1MCw4IEBAIGVzdGltYXRlX211bHRpdmFyaWF0ZV9idWNrZXRzaXplKFBsYW5uZXJJ bmZvICpyb290LCBSZWxPcHRJbmZvICppbm5lciwKIAkJCWlmIChibXNfZ2V0X3NpbmdsZXRv bl9tZW1iZXIocmVsaWRzLCAmcmVsaWQpICYmCiAJCQkJcm9vdC0+c2ltcGxlX3JlbF9hcnJh eVtyZWxpZF0tPnN0YXRsaXN0ICE9IE5JTCkKIAkJCXsKKwkJCQlib29sIGlzX2R1cGxpY2F0 ZSA9IGZhbHNlOworCiAJCQkJLyoKIAkJCQkgKiBUaGlzIGlubmVyLXNpZGUgZXhwcmVzc2lv biByZWZlcmVuY2VzIG9ubHkgb25lIHJlbGF0aW9uLgogCQkJCSAqIEV4dGVuZGVkIHN0YXRp c3RpY3Mgb24gdGhpcyBjbGF1c2UgY2FuIGV4aXN0LgpAQCAtMzg4MCw2ICszODgyLDMwIEBA IGVzdGltYXRlX211bHRpdmFyaWF0ZV9idWNrZXRzaXplKFBsYW5uZXJJbmZvICpyb290LCBS ZWxPcHRJbmZvICppbm5lciwKIAkJCQkJICovCiAJCQkJCWNvbnRpbnVlOwogCisJCQkJLyog Q2xlYXIgbnVsbGluZ3JlbHMgdG8gY29ycmVjdGx5IG1hdGNoIGhhc2gga2V5cyAqLworCQkJ CWV4cHIgPSByZW1vdmVfbnVsbGluZ19yZWxpZHMoZXhwciwgcm9vdC0+b3V0ZXJfam9pbl9y ZWxzLCBOVUxMKTsKKworCQkJCS8qCisJCQkJICogRGV0ZWN0IGFuZCBleGNsdWRlIGV4YWN0 IGR1cGxpY2F0ZXMgZnJvbSB0aGUgbGlzdCBvZgorCQkJCSAqIGhhc2gga2V5cyAobGlrZSBh ZGRfdW5pcXVlX2dyb3VwX3ZhciBkb2VzKS4KKwkJCQkgKi8KKwkJCQlmb3JlYWNoKGxjMSwg dmFyaW5mb3MpCisJCQkJeworCQkJCQl2YXJpbmZvID0gKEdyb3VwVmFySW5mbyAqKSBsZmly c3QobGMxKTsKKworCQkJCQlpZiAoIWVxdWFsKGV4cHIsIHZhcmluZm8tPnZhcikpCisJCQkJ CQljb250aW51ZTsKKworCQkJCQlpc19kdXBsaWNhdGUgPSB0cnVlOworCQkJCQlicmVhazsK KwkJCQl9CisJCQkJaWYgKGlzX2R1cGxpY2F0ZSkKKwkJCQkJLyoKKwkJCQkJICogU2tpcCBl eGFjdCBkdXBsaWNhdGVzLiBBZGRpbmcgdGhlbSB0byB0aGUgb3RoZXJjbGF1c2VzCisJCQkJ CSAqIGxpc3QgYWxzbyBkb2Vzbid0IG1ha2Ugc2Vuc2UuCisJCQkJCSAqLworCQkJCQljb250 aW51ZTsKKwogCQkJCXZhcmluZm8gPSAoR3JvdXBWYXJJbmZvICopIHBhbGxvYyhzaXplb2Yo R3JvdXBWYXJJbmZvKSk7CiAJCQkJdmFyaW5mby0+dmFyID0gZXhwcjsKIAkJCQl2YXJpbmZv LT5yZWwgPSByb290LT5zaW1wbGVfcmVsX2FycmF5W3JlbGlkXTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAppbmRleCA2ODZkOGM5M2FhOC4uNjM1OWU1ZmI2 ODkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQKQEAgLTM0 MjcsNCArMzQyNywzMiBAQCBTRUxFQ1QgKiBGUk9NIHNiXzEgYSwgc2JfMiBiIFdIRVJFIGEu eCA9IGIueCBBTkQgYS55ID0gYi55IEFORCBhLnogPSBiLno7CiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gc2JfMiBiCiAoNSByb3dzKQogCistLSBDaGVjayB0aGF0IHRoZSBIYXNoIEpv aW4gYnVja2V0IHNpemUgZXN0aW1hdG9yIGRldGVjdHMgZXF1YWwgY2xhdXNlcyBjb3JyZWN0 bHkuCitTRVQgZW5hYmxlX25lc3Rsb29wID0gJ29mZic7CitTRVQgZW5hYmxlX21lcmdlam9p biA9ICdvZmYnOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIEZST00gc2JfMSBMRUZU IEpPSU4gc2JfMiBPTiAoc2JfMi54PXNiXzEueCkgQU5EIChzYl8xLng9c2JfMi54KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEhhc2ggTGVmdCBKb2luCisgICBIYXNoIENvbmQ6ICgoc2JfMS54ID0gc2JfMi54 KSBBTkQgKHNiXzEueCA9IHNiXzIueCkpCisgICAtPiAgU2VxIFNjYW4gb24gc2JfMQorICAg LT4gIEhhc2gKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBzYl8yCisoNSByb3dzKQorCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgRlJPTSBzYl8xIExFRlQgSk9JTiBzYl8yCisg ICBPTiAoc2JfMi54PXNiXzEueCkgQU5EIChzYl8xLng9c2JfMi54KSBBTkQgKHNiXzEueT1z Yl8yLnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBIYXNoIExlZnQgSm9pbgorICAgSGFzaCBDb25kOiAoKHNiXzEueCA9IHNiXzIu eCkgQU5EIChzYl8xLnkgPSBzYl8yLnkpIEFORCAoc2JfMS54ID0gc2JfMi54KSkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBzYl8xCisgICAtPiAgSGFzaAorICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHNiXzIKKyg1IHJvd3MpCisKK1JFU0VUIGVuYWJsZV9uZXN0bG9vcDsKK1JFU0VUIGVu YWJsZV9tZXJnZWpvaW47CiBEUk9QIFRBQkxFIHNiXzEsIHNiXzIgQ0FTQ0FERTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4dC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zdGF0c19leHQuc3FsCmluZGV4IGI3MWE2Y2QwODlmLi5kYTRmMmZlOWM5 MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQuc3FsCkBAIC0xNzQ3LDQgKzE3NDcs MTUgQEAgQU5BTFlaRSBzYl8yOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSAtLSBDaG9vc2UgaGFz aCBqb2luCiBTRUxFQ1QgKiBGUk9NIHNiXzEgYSwgc2JfMiBiIFdIRVJFIGEueCA9IGIueCBB TkQgYS55ID0gYi55IEFORCBhLnogPSBiLno7CiAKKy0tIENoZWNrIHRoYXQgdGhlIEhhc2gg Sm9pbiBidWNrZXQgc2l6ZSBlc3RpbWF0b3IgZGV0ZWN0cyBlcXVhbCBjbGF1c2VzIGNvcnJl Y3RseS4KK1NFVCBlbmFibGVfbmVzdGxvb3AgPSAnb2ZmJzsKK1NFVCBlbmFibGVfbWVyZ2Vq b2luID0gJ29mZic7CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgRlJPTSBzYl8xIExF RlQgSk9JTiBzYl8yIE9OIChzYl8yLng9c2JfMS54KSBBTkQgKHNiXzEueD1zYl8yLngpOwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIEZST00gc2JfMSBMRUZUIEpPSU4gc2JfMgor ICAgT04gKHNiXzIueD1zYl8xLngpIEFORCAoc2JfMS54PXNiXzIueCkgQU5EIChzYl8xLnk9 c2JfMi55KTsKK1JFU0VUIGVuYWJsZV9uZXN0bG9vcDsKK1JFU0VUIGVuYWJsZV9tZXJnZWpv aW47CisKIERST1AgVEFCTEUgc2JfMSwgc2JfMiBDQVNDQURFOwotLSAKMi4zOS41Cgo= --------------NEmBUMk6jiBpcuB1ex00Pu3S--