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 1reVop-00BkHk-Pd for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Feb 2024 07:54:36 +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 1reVon-00BXZq-VV for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Feb 2024 07:54:34 +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 1reVon-00BXYF-Gy for pgsql-hackers@lists.postgresql.org; Mon, 26 Feb 2024 07:54:34 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1reVoi-0015hD-K4 for pgsql-hackers@lists.postgresql.org; Mon, 26 Feb 2024 07:54:33 +0000 Received: from [172.30.8.38] (unknown [172.30.8.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.lepikhov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id BDB33E2043A; Mon, 26 Feb 2024 10:54:25 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1708934067; bh=1XmxoswgiZ/DDon7pf0XXO05kxw+HgLHvadd5b5zO2A=; h=Message-ID:Date:User-Agent:Subject:To:References:From:In-Reply-To: From; b=vikhOwa0qG+ZNVPuXEIBoBdnSI6CBAwnBl6Rv7/IReGtQjxmSuomfMhyODu9mzW9O 7cFqevJq6zgSkPoLtJuvpsJkhVm3PmWKsQXmDswvAWbW3ycCxq6UGvlpvqb9UIfkMo DS/I51dhGwtlktoMTK48Mpz/ZT3fEXeMmJJgZtWk2Te3DUxP9MFVr7ZwInkrkizOGx IrBKZa0fa20cjk433DTdaj3shcYpxT6MI0f92Sd2/6fVQqErMDf0/F1ipvSqVTT/eu T5HhZIEPIznABRrIwaEvrAyHOhJQoDRQbdU2iCVFb6JKrLn2dTgfnlSYx6MXVS7yma OpG7K1HiytEzg== Content-Type: multipart/mixed; boundary="------------pImO9zRS1CadDAdcwC5Q7VT0" Message-ID: <7a6a807c-193f-4333-937b-8211b1330579@postgrespro.ru> Date: Mon, 26 Feb 2024 14:54:21 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: "type with xxxx does not exist" when doing ExecMemoize() Content-Language: en-US To: Tender Wang , PostgreSQL Hackers , Richard Guo References: From: Andrei Lepikhov Organization: Postgres Professional 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. --------------pImO9zRS1CadDAdcwC5Q7VT0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 26/2/2024 12:44, Tender Wang wrote: > > > Andrei Lepikhov > 于2024年2月26日周一 10:57写道: > > On 25/2/2024 20:32, Tender Wang wrote: > > I think in prepare_probe_slot(), should called datumCopy as the > attached > > patch does. > > > > Any thoughts? Thanks. > Thanks for the report. > I think it is better to invent a Runtime Memory Context; likewise, > it is > already designed in IndexScan and derivatives. Here, you just allocate > the value in some upper memory context. > Also, I'm curious why such a trivial error hasn't been found for a > long time > > > Make sense. I found MemoizeState already has a MemoryContext, so I used it. > I update the patch. This approach is better for me. In the next version of this patch, I included a test case. I am still unsure about the context chosen and the stability of the test case. Richard, you recently fixed some Memoize issues, could you look at this problem and patch? -- regards, Andrei Lepikhov Postgres Professional --------------pImO9zRS1CadDAdcwC5Q7VT0 Content-Type: text/plain; charset=UTF-8; name="v3-0001-Store-Memoize-probeslot-values-in-the-hash-table-mem.patch" Content-Disposition: attachment; filename*0="v3-0001-Store-Memoize-probeslot-values-in-the-hash-table-mem"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBlMzI5MDBlNTA3MzBiY2NmZGUyNjM1NTYwOWQ2YjBiM2U5NzBmMGE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAidGVuZGVyLndhbmciIDx0ZW5kZXIud2FuZ0BvcGVu cGllLmNvbT4KRGF0ZTogTW9uLCAyNiBGZWIgMjAyNCAxMzozODozMCArMDgwMApTdWJqZWN0 OiBbUEFUQ0hdIFN0b3JlIE1lbW9pemUgcHJvYmVzbG90IHZhbHVlcyBpbiB0aGUgaGFzaCB0 YWJsZSBtZW1vcnkKIGNvbnRleHQuCgpWYWx1ZXMgb2YgcHJvYmVzbG90IGV2YWx1YXRlcyBp biBleHByZXNzaW9uIG1lbW9yeSBjb250ZXh0IHdoaWNoIGNhbiBiZSByZXNldApvbiBoYXNo IGNvbXBhcmlzb24gd2hlbiB3ZSBzdGlsbCBuZWVkIGl0IGZvciB0aGUgZXF1YWxpdHkgY29t cGFyaXNvbi4KU28gd2UgY29weSB0aGUgcmVzdWx0IHRvIHByb2Jlc2xvdCBmcm9tIEV4ZWNF dmFsRXhwci4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTWVtb2l6ZS5jICAgIHwg MjMgKysrKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bWVtb2l6ZS5vdXQgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwgICAgICB8IDE0ICsrKysrKysrKysrKysrCiAzIGZp bGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1lbW9pemUuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNZW1vaXplLmMKaW5kZXggMTg4NzBmMTBlMS4uNjQwMjk0Mzc3MiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1lbW9pemUuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlTWVtb2l6ZS5jCkBAIC0zMTIsMTcgKzMxMiwyNiBA QCBwcmVwYXJlX3Byb2JlX3Nsb3QoTWVtb2l6ZVN0YXRlICptc3RhdGUsIE1lbW9pemVLZXkg KmtleSkKIAlpZiAoa2V5ID09IE5VTEwpCiAJewogCQlFeHByQ29udGV4dCAqZWNvbnRleHQg PSBtc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OworCQlEYXR1bSB2YWx1ZTsKKwkJYm9v bCBpc251bGw7CisJCVR1cGxlRGVzYyB0dXAgPSBwc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRv cjsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0OwogCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRl eHQ7CiAKLQkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlY29udGV4dC0+ ZWN4dF9wZXJfdHVwbGVfbWVtb3J5KTsKLQogCQkvKiBTZXQgdGhlIHByb2Jlc2xvdCdzIHZh bHVlcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWVzICovCiAJCWZvciAo aW50IGkgPSAwOyBpIDwgbnVtS2V5czsgaSsrKQotCQkJcHNsb3QtPnR0c192YWx1ZXNbaV0g PSBFeGVjRXZhbEV4cHIobXN0YXRlLT5wYXJhbV9leHByc1tpXSwKLQkJCQkJCQkJCQkJCWVj b250ZXh0LAotCQkJCQkJCQkJCQkJJnBzbG90LT50dHNfaXNudWxsW2ldKTsKLQotCQlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisJCXsKKwkJCWF0dCA9IFR1cGxlRGVz Y0F0dHIodHVwLCBpKTsKKwkJCXZhbHVlID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dCht c3RhdGUtPnBhcmFtX2V4cHJzW2ldLAorCQkJCQkJCQkJCQkgIGVjb250ZXh0LAorCQkJCQkJ CQkJCQkgICZpc251bGwpOworCQkJLyogQ29weSB0aGUgdmFsdWUgdG8gYXZvaWQgZnJlZWQg YWZ0ZXIgcmVzZXR0aW5nIEV4cHJDb250ZXh0ICovCisJCQlvbGRjb250ZXh0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG1zdGF0ZS0+dGFibGVDb250ZXh0KTsKKwkJCXBzbG90LT50dHNf dmFsdWVzW2ldID0gZGF0dW1Db3B5KHZhbHVlLCBhdHQtPmF0dGJ5dmFsLCBhdHQtPmF0dGxl bik7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwkJCXBzbG90 LT50dHNfaXNudWxsW2ldID0gaXNudWxsOworCQl9CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lbW9pemUub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9tZW1vaXplLm91dAppbmRleCBjZjY4ODZhMjg4Li45ODQyYjIz OGM2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lbW9pemUub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVtb2l6ZS5vdXQKQEAgLTE5Niw2 ICsxOTYsMzIgQEAgU0VMRUNUICogRlJPTSBmbHQgZjEgSU5ORVIgSk9JTiBmbHQgZjIgT04g ZjEuZiA+PSBmMi5mOycsIGZhbHNlKTsKICgxMCByb3dzKQogCiBEUk9QIFRBQkxFIGZsdDsK K0NSRUFURSBUQUJMRSBleHByX2tleSAoeCBudW1lcmljLCB0IHRleHQpOworSU5TRVJUIElO VE8gZXhwcl9rZXkgKHgsdCkgU0VMRUNUIGQxOjpudW1lcmljLCBkMTo6dGV4dCBGUk9NICgK KyAgU0VMRUNUIHJvdW5kKChkL3BpKCkpOjpudW1lcmljLDcpIEFTIGQxIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMjApIEFTIGQpOworLS0gSGF2aW5nIGR1cGxpY2F0ZXMgd2UgbXVzdCBz ZWUgaGl0cyBpbiB0aGUgTWVtb2l6ZSBub2RlCitJTlNFUlQgSU5UTyBleHByX2tleSBTRUxF Q1QgKiBGUk9NIGV4cHJfa2V5OworQ1JFQVRFIElOREVYIGV4cHJfa2V5X2lkeF94X3QgT04g ZXhwcl9rZXkgKHgsdCk7CitWQUNVVU0gQU5BTFlaRSBleHByX2tleTsKK1NFTEVDVCBleHBs YWluX21lbW9pemUoJworU0VMRUNUICogRlJPTSBleHByX2tleSB0MSBJTk5FUiBKT0lOIGV4 cHJfa2V5IHQyCitPTiB0MS54PXQyLnQ6Om51bWVyaWMgQU5EIHQxLnQ6Om51bWVyaWM9dDIu eDsnLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhw bGFpbl9tZW1vaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9vcCAoYWN0 dWFsIHJvd3M9ODAgbG9vcHM9TikKKyAgIC0+ICBJbmRleCBPbmx5IFNjYW4gdXNpbmcgZXhw cl9rZXlfaWR4X3hfdCBvbiBleHByX2tleSB0MSAoYWN0dWFsIHJvd3M9NDAgbG9vcHM9TikK KyAgICAgICAgIEhlYXAgRmV0Y2hlczogTgorICAgLT4gIE1lbW9pemUgKGFjdHVhbCByb3dz PTIgbG9vcHM9TikKKyAgICAgICAgIENhY2hlIEtleTogdDEueCwgKHQxLnQpOjpudW1lcmlj CisgICAgICAgICBDYWNoZSBNb2RlOiBsb2dpY2FsCisgICAgICAgICBIaXRzOiBOICBNaXNz ZXM6IE4gIEV2aWN0aW9uczogWmVybyAgT3ZlcmZsb3dzOiAwICBNZW1vcnkgVXNhZ2U6IE5r QgorICAgICAgICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyBleHByX2tleV9pZHhfeF90 IG9uIGV4cHJfa2V5IHQyIChhY3R1YWwgcm93cz0yIGxvb3BzPU4pCisgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoeCA9ICh0MS50KTo6bnVtZXJpYykKKyAgICAgICAgICAgICAgIEZp bHRlcjogKHQxLnggPSAodCk6Om51bWVyaWMpCisgICAgICAgICAgICAgICBIZWFwIEZldGNo ZXM6IE4KKygxMSByb3dzKQorCitEUk9QIFRBQkxFIGV4cHJfa2V5OwogLS0gRXhlcmNpc2Ug TWVtb2l6ZSBpbiBiaW5hcnkgbW9kZSB3aXRoIGEgbGFyZ2UgZml4ZWQgd2lkdGggdHlwZSBh bmQgYQogLS0gdmFybGVuYSB0eXBlLgogQ1JFQVRFIFRBQkxFIHN0cnRlc3QgKG4gbmFtZSwg dCB0ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21lbW9pemUuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwKaW5kZXggMWY0YWIwYmEzYi4u ZjJmNzY0MzU3MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVtb2l6ZS5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVtb2l6ZS5zcWwKQEAgLTEwMyw2ICsx MDMsMjAgQEAgU0VMRUNUICogRlJPTSBmbHQgZjEgSU5ORVIgSk9JTiBmbHQgZjIgT04gZjEu ZiA+PSBmMi5mOycsIGZhbHNlKTsKIAogRFJPUCBUQUJMRSBmbHQ7CiAKK0NSRUFURSBUQUJM RSBleHByX2tleSAoeCBudW1lcmljLCB0IHRleHQpOworSU5TRVJUIElOVE8gZXhwcl9rZXkg KHgsdCkgU0VMRUNUIGQxOjpudW1lcmljLCBkMTo6dGV4dCBGUk9NICgKKyAgU0VMRUNUIHJv dW5kKChkL3BpKCkpOjpudW1lcmljLDcpIEFTIGQxIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs MjApIEFTIGQpOworLS0gSGF2aW5nIGR1cGxpY2F0ZXMgd2UgbXVzdCBzZWUgaGl0cyBpbiB0 aGUgTWVtb2l6ZSBub2RlCitJTlNFUlQgSU5UTyBleHByX2tleSBTRUxFQ1QgKiBGUk9NIGV4 cHJfa2V5OworQ1JFQVRFIElOREVYIGV4cHJfa2V5X2lkeF94X3QgT04gZXhwcl9rZXkgKHgs dCk7CitWQUNVVU0gQU5BTFlaRSBleHByX2tleTsKKworU0VMRUNUIGV4cGxhaW5fbWVtb2l6 ZSgnCitTRUxFQ1QgKiBGUk9NIGV4cHJfa2V5IHQxIElOTkVSIEpPSU4gZXhwcl9rZXkgdDIK K09OIHQxLng9dDIudDo6bnVtZXJpYyBBTkQgdDEudDo6bnVtZXJpYz10Mi54OycsIHRydWUp OworCitEUk9QIFRBQkxFIGV4cHJfa2V5OworCiAtLSBFeGVyY2lzZSBNZW1vaXplIGluIGJp bmFyeSBtb2RlIHdpdGggYSBsYXJnZSBmaXhlZCB3aWR0aCB0eXBlIGFuZCBhCiAtLSB2YXJs ZW5hIHR5cGUuCiBDUkVBVEUgVEFCTEUgc3RydGVzdCAobiBuYW1lLCB0IHRleHQpOwotLSAK Mi40My4yCgo= --------------pImO9zRS1CadDAdcwC5Q7VT0--