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 1tGjtn-000QDA-S9 for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 19:10:00 +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 1tGjsn-000oWR-5z for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 19:08:58 +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 1tGjsm-000oVa-Mh for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 19:08:58 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGjsk-0001FS-MA for pgsql-hackers@postgresql.org; Thu, 28 Nov 2024 19:08:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1732820934; bh=foRy7Vg5zK0v+vXjLQbW/twRGTmW9/v1/fWYo6i88hY=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=Ys3jlH1fsKSRXYLk6XFIJU9l5wXC998x036FZO1kx4rQNil/CUA4VWcBoTaMQ6Vxp qZDniHctNOGDcpaT/0B3duS36qWj7uK18UVK5GShySJeK//vchSMbN95I+rrHal7jc ArbGhU84S7XjGVsU5FpGJ01/dWhKTvvBk37JKsfkBlXnn+DCe4P9Gqm+fywiNw5tYd Y0tthf6WO6zsDY7p6viKZukW3t2tgGQnQgT0vdjBWc74QY23+V5fA5V9pN62pLJDGU GlTL8qxzBN/mkIFCrvg+gjDCNH99zYij6DrhRkHvJzuOawHTK9yX7TxIHoBi/fIy6t +N19jafaMm/8A== Received: from [172.20.10.4] (unknown [89.113.147.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id A698F5FDFB; Thu, 28 Nov 2024 22:08:53 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------Bx1AwiO64FLTL1plDjQO1lmJ" Message-ID: <1765b44d-55e0-4ad2-a5f5-5492acf826b0@postgrespro.ru> Date: Thu, 28 Nov 2024 22:08:51 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes From: Alena Rybakina To: Alexander Lakhin , Alexander Korotkov , Andrei Lepikhov Cc: jian he , Robert Haas , Nikolay Shaplov , pgsql-hackers@lists.postgresql.org, pgsql-hackers@postgresql.org, Peter Geoghegan , Marcos Pegoraro , teodor@sigaev.ru, Peter Eisentraut , Ranier Vilela References: <567ED6CA.2040504@sigaev.ru> <45050ba9-3777-4cc1-89ad-a02deebe7729@gmail.com> <0026f562-d403-4f97-b9dc-3fe3a279e8c9@postgrespro.ru> <37bf870a-22e0-4aba-b845-549482118f8d@gmail.com> <8174de69-9e1a-0827-0e81-ef97f56a5939@gmail.com> Content-Language: en-US In-Reply-To: X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2024/11/28 17:42:00 #26906956 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------Bx1AwiO64FLTL1plDjQO1lmJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sorry, I was in a hurry and forgot to add the test result. I updated the patch On 28.11.2024 22:03, Alena Rybakina wrote: > Hi! Thank you for the case. > > On 28.11.2024 21:00, Alexander Lakhin wrote: >> Hello Alexander, >> >> 21.11.2024 09:34, Alexander Korotkov wrote: >>> I'm going to push this if no objections. >> >> Please look at the following query, which triggers an error after >> ae4569161: >> SET random_page_cost = 1; >> CREATE TABLE tbl(u UUID); >> CREATE INDEX idx ON tbl USING HASH (u); >> SELECT COUNT(*) FROM tbl WHERE u = '00000000000000000000000000000000' OR >>   u = '11111111111111111111111111111111'; >> >> ERROR:  XX000: ScalarArrayOpExpr index qual found where not allowed >> LOCATION:  ExecIndexBuildScanKeys, nodeIndexscan.c:1625 >> >> > I found out what the problem is index scan method was not generated. > We need to check this during OR clauses for SAOP transformation. > > There is a patch to fix this problem. > -- Regards, Alena Rybakina Postgres Professional --------------Bx1AwiO64FLTL1plDjQO1lmJ Content-Type: text/x-patch; charset=UTF-8; name="bugfix.diff" Content-Disposition: attachment; filename="bugfix.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRoLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jCmluZGV4IGQ4MjdmYzlmNGQ5 Li42MTExMGRiNjVkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgv aW5keHBhdGguYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5j CkBAIC0zMzAzLDYgKzMzMDMsMTAgQEAgbWF0Y2hfb3JjbGF1c2VfdG9faW5kZXhjb2woUGxh bm5lckluZm8gKnJvb3QsCiAJCWlmIChnZXRfb3BfcmV0dHlwZShvcG5vKSAhPSBCT09MT0lE KQogCQkJYnJlYWs7CiAKKwkJLyogSWdub3JlIGluZGV4IGlmIGl0IGRvZXNuJ3Qgc3VwcG9y dCBpbmRleCBzY2FucyAqLworCQlpZighaW5kZXgtPmFtc2VhcmNoYXJyYXkpCisJCQlicmVh azsKKwogCQkvKgogCQkgKiBDaGVjayBmb3IgY2xhdXNlcyBvZiB0aGUgZm9ybTogKGluZGV4 a2V5IG9wZXJhdG9yIGNvbnN0YW50KSBvcgogCQkgKiAoY29uc3RhbnQgb3BlcmF0b3IgaW5k ZXhrZXkpLiAgRGV0ZXJtaW5lIGluZGV4a2V5IHNpZGUgZmlyc3QsIGNoZWNrCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQKaW5kZXggMWIwYTVmMGU5 ZTEuLmVmOGJiZjQ3NDhjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9pbmRleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfaW5kZXgub3V0CkBAIC0xMjMzLDYgKzEyMzMsMjMgQEAgU0VMRUNUIGNvdW50KCopIEZS T00gdGVuazEgV0hFUkUgc3RyaW5ndTEgPSAnVFZBQUFBJzsKICAgICAxNAogKDEgcm93KQog CistLSBUcmFuc2Zvcm0gT1ItY2xhdXNlcyB0byBTQU9QJ3Mgc2hvdWxkbid0IGJlIGNob3Nl bgorU0VUIHJhbmRvbV9wYWdlX2Nvc3QgPSAxOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gdGVuazEgV0hFUkUgc3RyaW5ndTEgPSAnVFZBQUFBJyBPUiAg c3RyaW5ndTEgPSAnVFZBQUFCJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKHN0cmlu Z3UxID0gJ1RWQUFBQSc6Om5hbWUpIE9SIChzdHJpbmd1MSA9ICdUVkFBQUInOjpuYW1lKSkK KyAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGhhc2hfdHVwbGVzb3J0X2lkeAorICAgICAgICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKHN0cmluZ3UxID0gJ1RWQUFBQSc6Om5hbWUpCisgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gaGFzaF90dXBsZXNvcnRfaWR4CisgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoc3RyaW5ndTEgPSAnVFZBQUFCJzo6bmFtZSkKKyg4 IHJvd3MpCisKK1JFU0VUIHJhbmRvbV9wYWdlX2Nvc3Q7CiBEUk9QIElOREVYIGhhc2hfdHVw bGVzb3J0X2lkeDsKIFJFU0VUIG1haW50ZW5hbmNlX3dvcmtfbWVtOwogLS0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCmluZGV4IGRkZDBkOWFkMzk2Li4wZTY1Mjlm M2YzZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBAIC0zNzIs NiArMzcyLDExIEBAIENSRUFURSBJTkRFWCBoYXNoX3R1cGxlc29ydF9pZHggT04gdGVuazEg VVNJTkcgaGFzaCAoc3RyaW5ndTEgbmFtZV9vcHMpIFdJVEggKGZpCiBFWFBMQUlOIChDT1NU UyBPRkYpCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmd1MSA9ICdU VkFBQUEnOwogU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEgV0hFUkUgc3RyaW5ndTEgPSAn VFZBQUFBJzsKKy0tIFRyYW5zZm9ybSBPUi1jbGF1c2VzIHRvIFNBT1AncyBzaG91bGRuJ3Qg YmUgY2hvc2VuCitTRVQgcmFuZG9tX3BhZ2VfY29zdCA9IDE7CitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmd1MSA9ICdUVkFB QUEnIE9SICBzdHJpbmd1MSA9ICdUVkFBQUInOworUkVTRVQgcmFuZG9tX3BhZ2VfY29zdDsK IERST1AgSU5ERVggaGFzaF90dXBsZXNvcnRfaWR4OwogUkVTRVQgbWFpbnRlbmFuY2Vfd29y a19tZW07CiAK --------------Bx1AwiO64FLTL1plDjQO1lmJ--