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 1slQDf-007aFL-Jk for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 09:53:04 +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 1slQDe-009n4N-DK for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 09:53:02 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1slQDd-009n3N-Vp for pgsql-hackers@lists.postgresql.org; Tue, 03 Sep 2024 09:53:02 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1slQDb-000Qlb-34 for pgsql-hackers@lists.postgresql.org; Tue, 03 Sep 2024 09:53:00 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-42bbc70caa4so32847825e9.0 for ; Tue, 03 Sep 2024 02:52:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725357177; x=1725961977; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=+hja3ZXtc7/tSZ2zhpL0ic1AC883sgzkEbgMO/hSfBQ=; b=VO9CgJoSyrq+IeymazAWqKYllSeRXVasMu+/7oNAB0mKBoCb75oU29fLf0KynABB2h FEkNhj5fA6eCMRNqyOZcy0CGUq32RyXE/O4kltZjwnh54BuzVX9UOKDxLsgXTP/Onl6D sz824T74Tq0yoJk/kiBfSEeBaNfGJuM/fnFOWhUD/9G5s9kAJc+JXUc1JTpaCsEfWJx2 q/DvE24hBFEOr9vTvGbnzda81yFThAdH5tD3s5794ARlhH1neNC0dQmnTjU5FburBzem gmkmrC0DrSsLn98ZcdansHU50OT4tVYRRjDVXAszG7H9zJeEJk1Kw1RXWTelkLqjjWql vC6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725357177; x=1725961977; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+hja3ZXtc7/tSZ2zhpL0ic1AC883sgzkEbgMO/hSfBQ=; b=nJkekMEdxpDBd3w5/iSn7uyxCTtCBv4lVMkkEOU9lN1kysBay9VRughVLFZJO26/5h eWAlIS69y7PSbJWTh5v8C2W6S/Tmp0ZbIbZBCdqle0rsHrFRYyuU/BSRyhfzGwZnIC9U g/sBpGourj/2OQv1qPXsbssSQT6M/0WzvpFDmYS2oMN6Mv0IAvrog8UkVQebPlsqJ0uH HA7WqrN9p8HtmRQQgVpH4S8yXJUU/MHWFtV9SRS0/BqISUwMKytoU/Az3HVs3TpN0HJa 0xsSpYmBdlvU5k2RrEpW9903/2hpgE44XVxXI0+53URP2TB8somKs9lYNyk2eASHm/RE PTRQ== X-Forwarded-Encrypted: i=1; AJvYcCUG91rgnK6SAr7/LSqO6aOvVXrOK+TAZTmX8RHr7XWrRSAhvd83bBtmjpxswJ5fwS589AGTdYWY45KwtVlY@lists.postgresql.org X-Gm-Message-State: AOJu0Yw6z85pwnmL2QGRFi8Cl8ZFsnQ92+jeRdcx98xlLZrGYTvvTaIX j5nbT26Zf/be/aRab36hddSMXZxMBKxeg9RIomV/GEJumuydnCGq X-Google-Smtp-Source: AGHT+IHsGhREJJ0ra6cYHkR7TGk/rRoSyL2Boid6vBaNscEcwilKRUULwEK43/aY/yXXL3FqjjbLLw== X-Received: by 2002:a05:600c:4687:b0:426:68dd:bc92 with SMTP id 5b1f17b1804b1-42c8de5f5demr1630895e9.5.1725357177079; Tue, 03 Sep 2024 02:52:57 -0700 (PDT) Received: from ?IPV6:2a0c:5a81:4405:1600:35bd:635f:fa37:21e5? ([2a0c:5a81:4405:1600:35bd:635f:fa37:21e5]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42bb6da24bbsm165752955e9.0.2024.09.03.02.52.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 Sep 2024 02:52:56 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------mAr0qQ7CZPUDz6kGLVBSL6j7" Message-ID: <93464dd6-d484-4021-b71f-e82928bf6758@gmail.com> Date: Tue, 3 Sep 2024 11:52:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes To: Alena Rybakina , jian he , Alexander Korotkov Cc: Nikolay Shaplov , pgsql-hackers@lists.postgresql.org, Robert Haas , pgsql-hackers@postgresql.org, Peter Geoghegan , Marcos Pegoraro , teodor@sigaev.ru, Peter Eisentraut , Ranier Vilela References: <567ED6CA.2040504@sigaev.ru> <531fc0ab-371e-4235-97e3-dd2d077b6995@postgrespro.ru> <65bfdcb6-0f0c-4d4c-a721-cb38a0ba91c7@postgrespro.ru> <670d1dc2-a280-4cf6-bc29-e2eafb107081@gmail.com> Content-Language: en-US From: Andrei Lepikhov 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. --------------mAr0qQ7CZPUDz6kGLVBSL6j7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 26/8/2024 12:41, Alena Rybakina wrote: > On 26.08.2024 06:12, jian he wrote: >> On Fri, Aug 23, 2024 at 8:58 PM Alexander Korotkov wrote: >> + int indexnum; /* index of the matching index */ >> + int colnum; /* index of the matching column */ >> >> I am not 100% sure about the comments. >> indexnum: index of the matching index reside in rel->indexlist that >> matches (counting from 0) >> colnum: the column number of the matched index (counting from 0) Hmm, it is not easy to invent an alternative variant. What are you proposing exactly? > If OR constants have different types, then they belong to different > groups, and I think that's unfair. I think that conversion to a single > type should be used here - while I’m working on this, I’ll send the code > in the next letter. IMO, that means additional overhead, isn't it? It is an improvement and I suggest to discuss it in a separate thread if current feature will be applied. > > And I noticed that there were some tests missing on this, so I added this. > > I've updated the patch file to include my and Jian's suggestions, as > well as the diff file if there's no objection. I doubt if you really need additional index on the tenk1 table. What is the case you can't reproduce with current indexes, playing, let's say, with casting to numeric and integer data types? See in attachment minor fixes to the v38 version of the patch set. -- regards, Andrei Lepikhov --------------mAr0qQ7CZPUDz6kGLVBSL6j7 Content-Type: text/plain; charset=UTF-8; name="minor-fix.no-cfbot" Content-Disposition: attachment; filename="minor-fix.no-cfbot" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRoLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9pbmR4cGF0aC5jCmluZGV4IGNkZTYzNWQ5Y2Iu LmQ1NDQ2MmYwZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2lu ZHhwYXRoLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvaW5keHBhdGguYwpA QCAtMzM0NSwxMCArMzM0NSw4IEBAIG1hdGNoX29yY2xhdXNlX3RvX2luZGV4Y29sKFBsYW5u ZXJJbmZvICpyb290LAogCQlnZXRfdHlwbGVuYnl2YWxhbGlnbihjb25zdHR5cGUsICZ0eXBs ZW4sICZ0eXBieXZhbCwgJnR5cGFsaWduKTsKIAogCQllbGVtcyA9IChEYXR1bSAqKSBwYWxs b2Moc2l6ZW9mKERhdHVtKSAqIGxpc3RfbGVuZ3RoKGNvbnN0cykpOwotCQlmb3JlYWNoKGxj LCBjb25zdHMpCisJCWZvcmVhY2hfbm9kZShDb25zdCwgdmFsdWUsIGNvbnN0cykKIAkJewot CQkJQ29uc3QgKnZhbHVlID0gKENvbnN0ICopIGxmaXJzdChsYyk7Ci0KIAkJCUFzc2VydCgh dmFsdWUtPmNvbnN0aXNudWxsICYmIHZhbHVlLT5jb25zdHZhbHVlKTsKIAogCQkJZWxlbXNb aSsrXSA9IHZhbHVlLT5jb25zdHZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jcmVhdGVfaW5kZXgub3V0CmluZGV4IDU2MjNmNGIzMTIuLmFmYWUyY2MyNzIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQKQEAgLTE4Nzcs NyArMTg3Nyw3IEBAIFNFTEVDVCAqIEZST00gdGVuazEKIAogRVhQTEFJTiAoQ09TVFMgT0ZG KQogU0VMRUNUICogRlJPTSB0ZW5rMQotICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVu dGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyIG9yIHRlbnRob3Vz IGlzIG51bGwpOworICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9S IHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyIE9SIHRlbnRob3VzIElTIE5VTEwpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKQEAgLTE4OTAsNyArMTg5 MCw3IEBAIFNFTEVDVCAqIEZST00gdGVuazEKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9IEFOWSAoJ3sxLDMsNDJ9Jzo6aW50 ZWdlcltdKSkpCiAoOCByb3dzKQogCi1jcmVhdGUgaW5kZXggc3RyaW5ndTFfaWR4IG9uIHRl bmsxIChzdHJpbmd1MSk7CitDUkVBVEUgSU5ERVggc3RyaW5ndTFfaWR4IE9OIHRlbmsxIChz dHJpbmd1MSk7CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAg IFdIRVJFIHRob3VzYW5kID0gNDIgQU5EIChzdHJpbmd1MTo6dGV4dCA9ICdNQUFBQUEnIE9S IHN0cmluZ3UxOjp0ZXh0ID0gJ1RVQUFBQSc6Om5hbWUgT1Igc3RyaW5ndTEgPSAnT0JBQUFB Jzo6bmFtZSk7CkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAg ICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoc3RyaW5ndTEgPSBBTlkgKCd7VFVB QUFBLE9CQUFBQX0nOjp0ZXh0W10gQ09MTEFURSAiQyIpKQogKDExIHJvd3MpCiAKLURyb3Ag aW5kZXggc3RyaW5ndTFfaWR4OworRFJPUCBJTkRFWCBzdHJpbmd1MV9pZHg7CiBFWFBMQUlO IChDT1NUUyBPRkYpCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogICBXSEVSRSBodW5k cmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggMzc1MzhhYjZiYi4uNTBmNzY4 MjNkOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBAIC03NDAs OSArNzQwLDkgQEAgU0VMRUNUICogRlJPTSB0ZW5rMQogCiBFWFBMQUlOIChDT1NUUyBPRkYp CiBTRUxFQ1QgKiBGUk9NIHRlbmsxCi0gIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50 aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIgb3IgdGVudGhvdXMg aXMgbnVsbCk7CisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEgT1Ig dGVudGhvdXMgPSAzIE9SIHRlbnRob3VzID0gNDIgT1IgdGVudGhvdXMgSVMgTlVMTCk7CiAK LWNyZWF0ZSBpbmRleCBzdHJpbmd1MV9pZHggb24gdGVuazEgKHN0cmluZ3UxKTsKK0NSRUFU RSBJTkRFWCBzdHJpbmd1MV9pZHggT04gdGVuazEgKHN0cmluZ3UxKTsKIEVYUExBSU4gKENP U1RTIE9GRikKIFNFTEVDVCAqIEZST00gdGVuazEKICAgV0hFUkUgdGhvdXNhbmQgPSA0MiBB TkQgKHN0cmluZ3UxOjp0ZXh0ID0gJ01BQUFBQScgT1Igc3RyaW5ndTE6OnRleHQgPSAnVFVB QUFBJzo6bmFtZSBPUiBzdHJpbmd1MSA9ICdPQkFBQUEnOjpuYW1lKTsKQEAgLTc1Myw3ICs3 NTMsNyBAQCBTRUxFQ1QgKiBGUk9NIHRlbmsxCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxF Q1QgKiBGUk9NIHRlbmsxCiAgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EIChzdHJpbmd1MSA9 ICdNQUFBQUEnIE9SIHN0cmluZ3UxID0gJ1RVQUFBQSc6OnRleHQgT1Igc3RyaW5ndTEgPSAn T0JBQUFBJzo6dGV4dCk7Ci1Ecm9wIGluZGV4IHN0cmluZ3UxX2lkeDsKK0RST1AgSU5ERVgg c3RyaW5ndTFfaWR4OwogCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY291bnQoKikg RlJPTSB0ZW5rMQo= --------------mAr0qQ7CZPUDz6kGLVBSL6j7--