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 1tFuWN-00HK8s-JO for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Nov 2024 12:18:24 +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 1tFuWL-006YfQ-9y for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Nov 2024 12:18:21 +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 1tFuWJ-006YfA-L1 for pgsql-hackers@lists.postgresql.org; Tue, 26 Nov 2024 12:18:20 +0000 Received: from fout-a7-smtp.messagingengine.com ([103.168.172.150]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tFuWB-003yYW-K7 for pgsql-hackers@lists.postgresql.org; Tue, 26 Nov 2024 12:18:18 +0000 Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id 720E61380279; Tue, 26 Nov 2024 07:18:10 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Tue, 26 Nov 2024 07:18:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1732623490; x= 1732709890; bh=qpVDMdry6S90ZT+dTin1clcaLimxHpQP1rQV8Q9cqHo=; b=p IAFdqpdDN0tS6tRokmPC+r0oB6bYrM9WBjOkp0liZ+jRTyxCabJqsBooN47OJ2np isHZhSspx+P6tR1ghbEXYtxe4+j+6szOd2vtFRJvTyvdDPiwgSUKOqSeyfkXXZr4 olkOdhiEqmfjhBb0S2mG98FJVk7x4RG2xqgWOynk40TUm811a/B+L59YNlZIEu4Q thz93uIBNTiC/zi4R9VPaCzWkCJQbURq+ry1B788QXcujW3jbGGUtv+Dw7AaIddl 1BZe8WlTmxFmfZcrmnFrgt+Mol8f6xVM7yE3egYlomSop2CjY7eZAqkUg9R10i6A 1t+lOo1S8kjrqu1mD8kPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1732623490; x=1732709890; bh=qpVDMdry6S90ZT+dTin1clcaLimxHpQP1rQ V8Q9cqHo=; b=TeRV/yaVJ9RZw/06ASYZXYlfDQ0h8On9mutqo3IhM/pniGvyQYJ M9gz3AaKliyLt5NFLdssKzMMD3Df24sozZGY2gNY4ZPxHNHwF/rEZCH03lSpG09K YxTB2E9uFPFRV+dN1OSya1quozRIsjSQoxsK5Karwn1t7Cxwn7haEbmx4AV8CUQ9 nZ4x2bhE150ILGTtVTk46j0wPjjpFlj3cXLfL30zxKKV5+dIJ++kFrDgdIFZWDMr CQ/n6ejeteFK5DzqtSZ8/hqirxuWLFNsXmNNxQEdxPRwEWchOIkMY/TJCo7m1r0F pPrxistwkOTwVm3LT3Ey5tbj7e9C8scZS8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrgeejgdefhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdejnecu hfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnth hrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepkedtuedthfdvhfeviefgffetgedv jedvhffhveefvefgtdfgleegheeivefhgfeinecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg pdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehpjh esihhllhhumhhinhgrthgvuggtohhmphhuthhinhhgrdgtohhmpdhrtghpthhtohepjhhi rghnrdhunhhivhgvrhhsrghlihhthiesghhmrghilhdrtghomhdprhgtphhtthhopehpgh hsqhhlqdhhrggtkhgvrhhssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 26 Nov 2024 07:18:08 -0500 (EST) Content-Type: multipart/mixed; boundary="------------xAoMo1MEGUUb5WwHHKEWipsT" Message-ID: <333d3886-b737-45c3-93f4-594c96bb405d@eisentraut.org> Date: Tue, 26 Nov 2024 13:18:07 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time To: Paul Jungwirth Cc: jian he , PostgreSQL Hackers References: <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> <9b7cb814-c78c-489f-85b2-32be4398647f@illuminatedcomputing.com> <95c6d49b-7d60-4ad0-820c-e00ae1b2a3d4@illuminatedcomputing.com> <57ea0668-5205-426e-b934-efc89f2186c2@illuminatedcomputing.com> <6dc196d4-8853-49d7-8dd3-e391058451c1@eisentraut.org> <66e47fc0-77b7-4763-9b70-5c0b7ff15f21@eisentraut.org> Content-Language: en-US From: Peter Eisentraut 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. --------------xAoMo1MEGUUb5WwHHKEWipsT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 22.11.24 01:30, Paul Jungwirth wrote: >> -       return get_equal_strategy_number_for_am(am); >> +       /* For GiST indexes we need to ask the opclass what strategy >> number to use. */ >> +       if (am == GIST_AM_OID) >> +               return GistTranslateStratnum(opclass, >> RTEqualStrategyNumber); >> +       else >> +               return get_equal_strategy_number_for_am(am); >> >> This code should probably be pushed into >> get_equal_strategy_number_for_am().  That function already >> has a switch based on index AM OIDs.  Also, there are other callers of >> get_equal_strategy_number_for_am(), which also might want to become >> aware of GiST support. > > Done. The reason I didn't do this before is because we need the opclass, > not just the am. I put an > explanation about that into the function comment. If that's a problem I > can undo the change. I think this is the right idea, but after digging around a bit more, I think more could/should be done. After these changes, the difference between get_equal_strategy_number_for_am() and get_equal_strategy_number() is kind of pointless. We should really just use get_equal_strategy_number() for all purposes. But then you have the problem that IsIndexUsableForReplicaIdentityFull() doesn't have the opclass IDs available in the IndexInfo structure. You appear to have worked around that by writing + if (get_equal_strategy_number_for_am(indexInfo->ii_Am, InvalidOid) == InvalidStrategy) which I suppose will have the same ultimate result as before that patch, but it seems kind of incomplete. I figure this could all be simpler if IsIndexUsableForReplicaIdentityFull() used the index relcache entry directly instead of going the detour through IndexInfo. Then we have all the information available, and this should ultimately all work properly for suitable GiST indexes as well. I have attached three patches that show how that could be done. (This would work in conjunction with your new tests. (Although now we could also test GiST with replica identity full?)) The comment block for IsIndexUsableForReplicaIdentityFull() makes a bunch of claims that are not all explicitly supported by the code. The code doesn't actually check the AM, this is all only done indirectly via other checks. The second point (about tuples_equal()) appears to be slightly wrong, because while you need an equals operator from the type cache, that shouldn't prevent you from also using a different index AM than btree or hash for the replica identity index. And the stuff about amgettuple, if that is important, why is it only checked for assert builds? --------------xAoMo1MEGUUb5WwHHKEWipsT Content-Type: text/plain; charset=UTF-8; name="0001-Simplify-IsIndexUsableForReplicaIdentityFull.patch.nocfbot" Content-Disposition: attachment; filename*0="0001-Simplify-IsIndexUsableForReplicaIdentityFull.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSBmZGY1YTIzMzVjYjk4Nzk1M2IwNzBkZWMxOWUyMGEzZjljYWFhYTVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyNiBOb3YgMjAyNCAxMToyNToxMiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMS8zXSBTaW1wbGlmeSBJc0luZGV4VXNhYmxlRm9yUmVwbGljYUlkZW50aXR5 RnVsbCgpCgpUYWtlIFJlbGF0aW9uIGFzIGFyZ3VtZW50IGluc3RlYWQgb2YgSW5kZXhJbmZv LiAgQnVpbGRpbmcgdGhlCkluZGV4SW5mbyBpcyBhbiB1bm5lY2Vzc2FyeSBpbnRlcm1lZGlh dGUgc3RlcCBoZXJlLgotLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVs YXRpb24uYyB8IDE2ICsrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMgICB8ICAyICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9s b2dpY2FscmVsYXRpb24uaCAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvcmVsYXRpb24uYwppbmRleCBmNWEwZWYyYmQ5ZC4uMWI0MjZmNDNmZDcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3JlbGF0aW9uLmMKQEAgLTc1MCwx MSArNzUwLDkgQEAgRmluZFVzYWJsZUluZGV4Rm9yUmVwbGljYUlkZW50aXR5RnVsbChSZWxh dGlvbiBsb2NhbHJlbCwgQXR0ck1hcCAqYXR0cm1hcCkKIAl7CiAJCWJvb2wJCWlzVXNhYmxl SWR4OwogCQlSZWxhdGlvbglpZHhSZWw7Ci0JCUluZGV4SW5mbyAgKmlkeEluZm87CiAKIAkJ aWR4UmVsID0gaW5kZXhfb3BlbihpZHhvaWQsIEFjY2Vzc1NoYXJlTG9jayk7Ci0JCWlkeElu Zm8gPSBCdWlsZEluZGV4SW5mbyhpZHhSZWwpOwotCQlpc1VzYWJsZUlkeCA9IElzSW5kZXhV c2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKGlkeEluZm8sIGF0dHJtYXApOworCQlpc1Vz YWJsZUlkeCA9IElzSW5kZXhVc2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKGlkeFJlbCwg YXR0cm1hcCk7CiAJCWluZGV4X2Nsb3NlKGlkeFJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAog CQkvKiBSZXR1cm4gdGhlIGZpcnN0IGVsaWdpYmxlIGluZGV4IGZvdW5kICovCkBAIC04MDEs MjIgKzc5OSwyMiBAQCBGaW5kVXNhYmxlSW5kZXhGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKFJl bGF0aW9uIGxvY2FscmVsLCBBdHRyTWFwICphdHRybWFwKQogICogdG8gc2VxdWVudGlhbCBl eGVjdXRpb24sIHdoaWNoIG1pZ2h0IG5vdCBiZSBhIGdvb2QgaWRlYSBpbiBzb21lIGNhc2Vz LgogICovCiBib29sCi1Jc0luZGV4VXNhYmxlRm9yUmVwbGljYUlkZW50aXR5RnVsbChJbmRl eEluZm8gKmluZGV4SW5mbywgQXR0ck1hcCAqYXR0cm1hcCkKK0lzSW5kZXhVc2FibGVGb3JS ZXBsaWNhSWRlbnRpdHlGdWxsKFJlbGF0aW9uIGlkeHJlbCwgQXR0ck1hcCAqYXR0cm1hcCkK IHsKIAlBdHRyTnVtYmVyCWtleWNvbDsKIAogCS8qIEVuc3VyZSB0aGF0IHRoZSBpbmRleCBh Y2Nlc3MgbWV0aG9kIGhhcyBhIHZhbGlkIGVxdWFsIHN0cmF0ZWd5ICovCi0JaWYgKGdldF9l cXVhbF9zdHJhdGVneV9udW1iZXJfZm9yX2FtKGluZGV4SW5mby0+aWlfQW0pID09IEludmFs aWRTdHJhdGVneSkKKwlpZiAoZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oaWR4 cmVsLT5yZF9yZWwtPnJlbGFtKSA9PSBJbnZhbGlkU3RyYXRlZ3kpCiAJCXJldHVybiBmYWxz ZTsKIAogCS8qIFRoZSBpbmRleCBtdXN0IG5vdCBiZSBhIHBhcnRpYWwgaW5kZXggKi8KLQlp ZiAoaW5kZXhJbmZvLT5paV9QcmVkaWNhdGUgIT0gTklMKQorCWlmICghaGVhcF9hdHRpc251 bGwoaWR4cmVsLT5yZF9pbmRleHR1cGxlLCBBbnVtX3BnX2luZGV4X2luZHByZWQsIE5VTEwp KQogCQlyZXR1cm4gZmFsc2U7CiAKLQlBc3NlcnQoaW5kZXhJbmZvLT5paV9OdW1JbmRleEF0 dHJzID49IDEpOworCUFzc2VydChpZHhyZWwtPnJkX2luZGV4LT5pbmRuYXR0cyA+PSAxKTsK IAogCS8qIFRoZSBsZWZ0bW9zdCBpbmRleCBmaWVsZCBtdXN0IG5vdCBiZSBhbiBleHByZXNz aW9uICovCi0Ja2V5Y29sID0gaW5kZXhJbmZvLT5paV9JbmRleEF0dHJOdW1iZXJzWzBdOwor CWtleWNvbCA9IGlkeHJlbC0+cmRfaW5kZXgtPmluZGtleS52YWx1ZXNbMF07CiAJaWYgKCFB dHRyaWJ1dGVOdW1iZXJJc1ZhbGlkKGtleWNvbCkpCiAJCXJldHVybiBmYWxzZTsKIApAQCAt ODM0LDcgKzgzMiw3IEBAIElzSW5kZXhVc2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKElu ZGV4SW5mbyAqaW5kZXhJbmZvLCBBdHRyTWFwICphdHRybWFwKQogCQlJbmRleEFtUm91dGlu ZSAqYW1yb3V0aW5lOwogCiAJCS8qIFRoZSBnaXZlbiBpbmRleCBhY2Nlc3MgbWV0aG9kIG11 c3QgaW1wbGVtZW50IGFtZ2V0dHVwbGUuICovCi0JCWFtcm91dGluZSA9IEdldEluZGV4QW1S b3V0aW5lQnlBbUlkKGluZGV4SW5mby0+aWlfQW0sIGZhbHNlKTsKKwkJYW1yb3V0aW5lID0g R2V0SW5kZXhBbVJvdXRpbmVCeUFtSWQoaWR4cmVsLT5yZF9yZWwtPnJlbGFtLCBmYWxzZSk7 CiAJCUFzc2VydChhbXJvdXRpbmUtPmFtZ2V0dHVwbGUgIT0gTlVMTCk7CiAJfQogI2VuZGlm CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA5MjVk ZmY5Y2M0NC4uNDZkM2FkNTY2ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC93b3JrZXIuYwpAQCAtMjkzMSw3ICsyOTMxLDcgQEAgRmluZFJlcGxUdXBsZUluTG9j YWxSZWwoQXBwbHlFeGVjdXRpb25EYXRhICplZGF0YSwgUmVsYXRpb24gbG9jYWxyZWwsCiAJ CS8qIEluZGV4IG11c3QgYmUgUEssIFJJLCBvciB1c2FibGUgZm9yIFJFUExJQ0EgSURFTlRJ VFkgRlVMTCB0YWJsZXMgKi8KIAkJQXNzZXJ0KEdldFJlbGF0aW9uSWRlbnRpdHlPclBLKGxv Y2FscmVsKSA9PSBsb2NhbGlkeG9pZCB8fAogCQkJICAgKHJlbW90ZXJlbC0+cmVwbGlkZW50 ID09IFJFUExJQ0FfSURFTlRJVFlfRlVMTCAmJgotCQkJCUlzSW5kZXhVc2FibGVGb3JSZXBs aWNhSWRlbnRpdHlGdWxsKEJ1aWxkSW5kZXhJbmZvKGlkeHJlbCksCisJCQkJSXNJbmRleFVz YWJsZUZvclJlcGxpY2FJZGVudGl0eUZ1bGwoaWR4cmVsLAogCQkJCQkJCQkJCQkJCWVkYXRh LT50YXJnZXRSZWwtPmF0dHJtYXApKSk7CiAJCWluZGV4X2Nsb3NlKGlkeHJlbCwgQWNjZXNz U2hhcmVMb2NrKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vbG9naWNhbHJlbGF0aW9uLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fs cmVsYXRpb24uaAppbmRleCBlNjg3YjQwYTU2Ni4uMzM1MzQ2NzJlYzMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxyZWxhdGlvbi5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxyZWxhdGlvbi5oCkBAIC00OCw3ICs0OCw3IEBA IGV4dGVybiBMb2dpY2FsUmVwUmVsTWFwRW50cnkgKmxvZ2ljYWxyZXBfcGFydGl0aW9uX29w ZW4oTG9naWNhbFJlcFJlbE1hcEVudHJ5ICpyCiAJCQkJCQkJCQkJCQkJCVJlbGF0aW9uIHBh cnRyZWwsIEF0dHJNYXAgKm1hcCk7CiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3JlbF9jbG9z ZShMb2dpY2FsUmVwUmVsTWFwRW50cnkgKnJlbCwKIAkJCQkJCQkJIExPQ0tNT0RFIGxvY2tt b2RlKTsKLWV4dGVybiBib29sIElzSW5kZXhVc2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxs KEluZGV4SW5mbyAqaW5kZXhJbmZvLCBBdHRyTWFwICphdHRybWFwKTsKK2V4dGVybiBib29s IElzSW5kZXhVc2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKFJlbGF0aW9uIGlkeHJlbCwg QXR0ck1hcCAqYXR0cm1hcCk7CiBleHRlcm4gT2lkCUdldFJlbGF0aW9uSWRlbnRpdHlPclBL KFJlbGF0aW9uIHJlbCk7CiAKICNlbmRpZgkJCQkJCQkvKiBMT0dJQ0FMUkVMQVRJT05fSCAq LwotLSAKMi40Ny4wCgo= --------------xAoMo1MEGUUb5WwHHKEWipsT Content-Type: text/plain; charset=UTF-8; name="0002-Replace-get_equal_strategy_number_for_am-by-.patch.nocfbot" Content-Disposition: attachment; filename*0="0002-Replace-get_equal_strategy_number_for_am-by-.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSBlMjQ2OTVjNGE5MTJlZWVmZTBjZmMyZmJmYTUzNjlhMDM3NGU2MjIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyNiBOb3YgMjAyNCAxMTo0NzoyNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMi8zXSBSZXBsYWNlIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXJfZm9yX2Ft KCkgYnkKIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXIoKQoKLS0tCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAgICAgfCAxNyArKystLS0tLS0tLS0tLS0tLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlvbi5jIHwgMTUgKysrKysr KysrKystLS0tCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICAg fCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRp b24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCmluZGV4IDU0 MDI1YzlmMTUwLi44MzEzY2NkYjQ2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1JlcGxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Jl cGxpY2F0aW9uLmMKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIGJvb2wgdHVwbGVzX2VxdWFs KFR1cGxlVGFibGVTbG90ICpzbG90MSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QyLAogCiAvKgog ICogUmV0dXJucyB0aGUgZml4ZWQgc3RyYXRlZ3kgbnVtYmVyLCBpZiBhbnksIG9mIHRoZSBl cXVhbGl0eSBvcGVyYXRvciBmb3IgdGhlCi0gKiBnaXZlbiBpbmRleCBhY2Nlc3MgbWV0aG9k LCBvdGhlcndpc2UsIEludmFsaWRTdHJhdGVneS4KKyAqIGdpdmVuIG9wZXJhdG9yIGNsYXNz LCBvdGhlcndpc2UsIEludmFsaWRTdHJhdGVneS4KICAqCiAgKiBDdXJyZW50bHksIG9ubHkg QnRyZWUgYW5kIEhhc2ggaW5kZXhlcyBhcmUgc3VwcG9ydGVkLiBUaGUgb3RoZXIgaW5kZXgg YWNjZXNzCiAgKiBtZXRob2RzIGRvbid0IGhhdmUgYSBmaXhlZCBzdHJhdGVneSBmb3IgZXF1 YWxpdHkgb3BlcmF0aW9uIC0gaW5zdGVhZCwgdGhlCkBAIC00Nyw4ICs0Nyw5IEBAIHN0YXRp YyBib29sIHR1cGxlc19lcXVhbChUdXBsZVRhYmxlU2xvdCAqc2xvdDEsIFR1cGxlVGFibGVT bG90ICpzbG90MiwKICAqIGFjY29yZGluZyB0byB0aGUgb3BlcmF0b3IgY2xhc3MncyBkZWZp bml0aW9uLgogICovCiBTdHJhdGVneU51bWJlcgotZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJl cl9mb3JfYW0oT2lkIGFtKQorZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcihPaWQgb3BjbGFz cykKIHsKKwlPaWQJCQlhbSA9IGdldF9vcGNsYXNzX21ldGhvZChvcGNsYXNzKTsKIAlpbnQJ CQlyZXQ7CiAKIAlzd2l0Y2ggKGFtKQpAQCAtNjgsMTggKzY5LDYgQEAgZ2V0X2VxdWFsX3N0 cmF0ZWd5X251bWJlcl9mb3JfYW0oT2lkIGFtKQogCXJldHVybiByZXQ7CiB9CiAKLS8qCi0g KiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHN0cmF0ZWd5IG51bWJlciB3aGljaCBjb3JyZXNw b25kcyB0byB0aGUgZXF1YWxpdHkKLSAqIG9wZXJhdG9yLgotICovCi1zdGF0aWMgU3RyYXRl Z3lOdW1iZXIKLWdldF9lcXVhbF9zdHJhdGVneV9udW1iZXIoT2lkIG9wY2xhc3MpCi17Ci0J T2lkCQkJYW0gPSBnZXRfb3BjbGFzc19tZXRob2Qob3BjbGFzcyk7Ci0KLQlyZXR1cm4gZ2V0 X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oYW0pOwotfQotCiAvKgogICogU2V0dXAg YSBTY2FuS2V5IGZvciBhIHNlYXJjaCBpbiB0aGUgcmVsYXRpb24gJ3JlbCcgZm9yIGEgdHVw bGUgJ2tleScgdGhhdAogICogaXMgc2V0dXAgdG8gbWF0Y2ggJ3JlbCcgKCpOT1QqIGlkeHJl bCEpLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxh dGlvbi5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlvbi5jCmlu ZGV4IDFiNDI2ZjQzZmQ3Li43Y2RhNmE3OTJhMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg InJlcGxpY2F0aW9uL2xvZ2ljYWxyZWxhdGlvbi5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVk ZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBMb2dpY2Fs UmVwUmVsTWFwQ29udGV4dCA9IE5VTEw7CkBAIC03ODQsNyArNzg1LDcgQEAgRmluZFVzYWJs ZUluZGV4Rm9yUmVwbGljYUlkZW50aXR5RnVsbChSZWxhdGlvbiBsb2NhbHJlbCwgQXR0ck1h cCAqYXR0cm1hcCkKICAqIFRoZSByZWFzb25zIHdoeSBvbmx5IEJ0cmVlIGFuZCBIYXNoIGlu ZGV4ZXMgY2FuIGJlIGNvbnNpZGVyZWQgYXMgdXNhYmxlIGFyZToKICAqCiAgKiAxKSBPdGhl ciBpbmRleCBhY2Nlc3MgbWV0aG9kcyBkb24ndCBoYXZlIGEgZml4ZWQgc3RyYXRlZ3kgZm9y IGVxdWFsaXR5Ci0gKiBvcGVyYXRpb24uIFJlZmVyIGdldF9lcXVhbF9zdHJhdGVneV9udW1i ZXJfZm9yX2FtKCkuCisgKiBvcGVyYXRpb24uIFJlZmVyIGdldF9lcXVhbF9zdHJhdGVneV9u dW1iZXIoKS4KICAqCiAgKiAyKSBGb3IgaW5kZXhlcyBvdGhlciB0aGFuIFBLIGFuZCBSRVBM SUNBIElERU5USVRZLCB3ZSBuZWVkIHRvIG1hdGNoIHRoZQogICogbG9jYWwgYW5kIHJlbW90 ZSB0dXBsZXMuIFRoZSBlcXVhbGl0eSByb3V0aW5lIHR1cGxlc19lcXVhbCgpIGNhbm5vdCBh Y2NlcHQKQEAgLTgwMiwxMCArODAzLDkgQEAgYm9vbAogSXNJbmRleFVzYWJsZUZvclJlcGxp Y2FJZGVudGl0eUZ1bGwoUmVsYXRpb24gaWR4cmVsLCBBdHRyTWFwICphdHRybWFwKQogewog CUF0dHJOdW1iZXIJa2V5Y29sOworCW9pZHZlY3RvciAgKmluZGNsYXNzOwogCi0JLyogRW5z dXJlIHRoYXQgdGhlIGluZGV4IGFjY2VzcyBtZXRob2QgaGFzIGEgdmFsaWQgZXF1YWwgc3Ry YXRlZ3kgKi8KLQlpZiAoZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oaWR4cmVs LT5yZF9yZWwtPnJlbGFtKSA9PSBJbnZhbGlkU3RyYXRlZ3kpCi0JCXJldHVybiBmYWxzZTsK KwlpbmRjbGFzcyA9IChvaWR2ZWN0b3IgKikgRGF0dW1HZXRQb2ludGVyKFN5c0NhY2hlR2V0 QXR0ck5vdE51bGwoSU5ERVhSRUxJRCwgaWR4cmVsLT5yZF9pbmRleHR1cGxlLCBBbnVtX3Bn X2luZGV4X2luZGNsYXNzKSk7CiAKIAkvKiBUaGUgaW5kZXggbXVzdCBub3QgYmUgYSBwYXJ0 aWFsIGluZGV4ICovCiAJaWYgKCFoZWFwX2F0dGlzbnVsbChpZHhyZWwtPnJkX2luZGV4dHVw bGUsIEFudW1fcGdfaW5kZXhfaW5kcHJlZCwgTlVMTCkpCkBAIC04MTMsNiArODEzLDEzIEBA IElzSW5kZXhVc2FibGVGb3JSZXBsaWNhSWRlbnRpdHlGdWxsKFJlbGF0aW9uIGlkeHJlbCwg QXR0ck1hcCAqYXR0cm1hcCkKIAogCUFzc2VydChpZHhyZWwtPnJkX2luZGV4LT5pbmRuYXR0 cyA+PSAxKTsKIAorCS8qIEVuc3VyZSB0aGF0IHRoZSBpbmRleCBoYXMgYSB2YWxpZCBlcXVh bCBzdHJhdGVneSBmb3IgZWFjaCBjb2x1bW4gKi8KKwlmb3IgKGludCBpID0gMDsgaSA8IGlk eHJlbC0+cmRfaW5kZXgtPmluZG5hdHRzOyBpKyspCisJeworCQlpZiAoZ2V0X2VxdWFsX3N0 cmF0ZWd5X251bWJlcihpbmRjbGFzcy0+dmFsdWVzW2ldKSA9PSBJbnZhbGlkU3RyYXRlZ3kp CisJCQlyZXR1cm4gZmFsc2U7CisJfQorCiAJLyogVGhlIGxlZnRtb3N0IGluZGV4IGZpZWxk IG11c3Qgbm90IGJlIGFuIGV4cHJlc3Npb24gKi8KIAlrZXljb2wgPSBpZHhyZWwtPnJkX2lu ZGV4LT5pbmRrZXkudmFsdWVzWzBdOwogCWlmICghQXR0cmlidXRlTnVtYmVySXNWYWxpZChr ZXljb2wpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggNjljM2ViZmYwMGEuLmU5 NDljY2U3ZDk4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5o CisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTY1OCw3ICs2NTgs NyBAQCBleHRlcm4gdm9pZCBjaGVja19leGNsdXNpb25fY29uc3RyYWludChSZWxhdGlvbiBo ZWFwLCBSZWxhdGlvbiBpbmRleCwKIC8qCiAgKiBwcm90b3R5cGVzIGZyb20gZnVuY3Rpb25z IGluIGV4ZWNSZXBsaWNhdGlvbi5jCiAgKi8KLWV4dGVybiBTdHJhdGVneU51bWJlciBnZXRf ZXF1YWxfc3RyYXRlZ3lfbnVtYmVyX2Zvcl9hbShPaWQgYW0pOworZXh0ZXJuIFN0cmF0ZWd5 TnVtYmVyIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXIoT2lkIG9wY2xhc3MpOwogZXh0ZXJu IGJvb2wgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBp ZHhvaWQsCiAJCQkJCQkJCQkJIExvY2tUdXBsZU1vZGUgbG9ja21vZGUsCiAJCQkJCQkJCQkJ IFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAotLSAKMi40Ny4wCgo= --------------xAoMo1MEGUUb5WwHHKEWipsT Content-Type: text/plain; charset=UTF-8; name="0003-Support-for-GIST-in-get_equal_strategy_numbe.patch.nocfbot" Content-Disposition: attachment; filename*0="0003-Support-for-GIST-in-get_equal_strategy_numbe.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSBhNDYxMzk2NDhhYzdjNGRlOTI3MzE1MTU4YjY2YzE1YmQyZmQ1MzYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyNiBOb3YgMjAyNCAxMTo1NzowOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMy8zXSBTdXBwb3J0IGZvciBHSVNUIGluIGdldF9lcXVhbF9zdHJhdGVneV9u dW1iZXIoKQoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAg ICAgfCA5ICsrKystLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxh dGlvbi5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxp Y2F0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRl eCA4MzEzY2NkYjQ2Yi4uMGZhNjdhZGI5OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSZXBsaWNhdGlvbi5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMu aCIKIAogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFjY2Vzcy9naXN0 LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3JlbHNjYW4uaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFi bGVhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCkBAIC00MCwxMSArNDEsNiBA QCBzdGF0aWMgYm9vbCB0dXBsZXNfZXF1YWwoVHVwbGVUYWJsZVNsb3QgKnNsb3QxLCBUdXBs ZVRhYmxlU2xvdCAqc2xvdDIsCiAvKgogICogUmV0dXJucyB0aGUgZml4ZWQgc3RyYXRlZ3kg bnVtYmVyLCBpZiBhbnksIG9mIHRoZSBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdGhlCiAgKiBn aXZlbiBvcGVyYXRvciBjbGFzcywgb3RoZXJ3aXNlLCBJbnZhbGlkU3RyYXRlZ3kuCi0gKgot ICogQ3VycmVudGx5LCBvbmx5IEJ0cmVlIGFuZCBIYXNoIGluZGV4ZXMgYXJlIHN1cHBvcnRl ZC4gVGhlIG90aGVyIGluZGV4IGFjY2VzcwotICogbWV0aG9kcyBkb24ndCBoYXZlIGEgZml4 ZWQgc3RyYXRlZ3kgZm9yIGVxdWFsaXR5IG9wZXJhdGlvbiAtIGluc3RlYWQsIHRoZQotICog c3VwcG9ydCByb3V0aW5lcyBvZiBlYWNoIG9wZXJhdG9yIGNsYXNzIGludGVycHJldCB0aGUg c3RyYXRlZ3kgbnVtYmVycwotICogYWNjb3JkaW5nIHRvIHRoZSBvcGVyYXRvciBjbGFzcydz IGRlZmluaXRpb24uCiAgKi8KIFN0cmF0ZWd5TnVtYmVyCiBnZXRfZXF1YWxfc3RyYXRlZ3lf bnVtYmVyKE9pZCBvcGNsYXNzKQpAQCAtNjAsNiArNTYsOSBAQCBnZXRfZXF1YWxfc3RyYXRl Z3lfbnVtYmVyKE9pZCBvcGNsYXNzKQogCQljYXNlIEhBU0hfQU1fT0lEOgogCQkJcmV0ID0g SFRFcXVhbFN0cmF0ZWd5TnVtYmVyOwogCQkJYnJlYWs7CisJCWNhc2UgR0lTVF9BTV9PSUQ6 CisJCQlyZXQgPSBHaXN0VHJhbnNsYXRlU3RyYXRudW0ob3BjbGFzcywgUlRFcXVhbFN0cmF0 ZWd5TnVtYmVyKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogWFhYOiBPbmx5IEJ0 cmVlIGFuZCBIYXNoIGluZGV4ZXMgYXJlIHN1cHBvcnRlZCAqLwogCQkJcmV0ID0gSW52YWxp ZFN0cmF0ZWd5OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlv bi5jCmluZGV4IDdjZGE2YTc5MmEyLi5mNjg2OTc1ZjM5ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYwpAQCAtNzgyLDcgKzc4Miw3IEBAIEZp bmRVc2FibGVJbmRleEZvclJlcGxpY2FJZGVudGl0eUZ1bGwoUmVsYXRpb24gbG9jYWxyZWws IEF0dHJNYXAgKmF0dHJtYXApCiAgKiBjb21wYXJlIHRoZSB0dXBsZXMgZm9yIG5vbi1QSy9S SSBpbmRleCBzY2Fucy4gU2VlCiAgKiBSZWxhdGlvbkZpbmRSZXBsVHVwbGVCeUluZGV4KCku CiAgKgotICogVGhlIHJlYXNvbnMgd2h5IG9ubHkgQnRyZWUgYW5kIEhhc2ggaW5kZXhlcyBj YW4gYmUgY29uc2lkZXJlZCBhcyB1c2FibGUgYXJlOgorICogVGhlIHJlYXNvbnMgd2h5IG9u bHkgQnRyZWUgYW5kIEhhc2ggaW5kZXhlcyBjYW4gYmUgY29uc2lkZXJlZCBhcyB1c2FibGUg YXJlOiBYWFgKICAqCiAgKiAxKSBPdGhlciBpbmRleCBhY2Nlc3MgbWV0aG9kcyBkb24ndCBo YXZlIGEgZml4ZWQgc3RyYXRlZ3kgZm9yIGVxdWFsaXR5CiAgKiBvcGVyYXRpb24uIFJlZmVy IGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXIoKS4KLS0gCjIuNDcuMAoK --------------xAoMo1MEGUUb5WwHHKEWipsT--