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.96) (envelope-from ) id 1w5Dgx-0031Qq-1j for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 02:09:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5Dgw-00AVtA-0E for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 02:09:54 +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.96) (envelope-from ) id 1w5Dgv-00AVt1-2O for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 02:09:54 +0000 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5Dgt-00000000yza-2XiY for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 02:09:53 +0000 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-439bc14dcf4so297874f8f.1 for ; Tue, 24 Mar 2026 19:09:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774404591; cv=none; d=google.com; s=arc-20240605; b=heM3ZP66fjMrNPmZKY5H/i6FdQtPcNVflOv+AJ9z6grDdjPoTlQMGaxgqUJRTibO1+ 7PJJiXfN7ApaF2RKQduaufmgBLCrLkdoSbxKbtr1BWAeWe2A5x1ikn6NIBAAINpdIVW7 CA//ncJ5PX7fAk/BvHXqCypIMrEAqQ4k45+I86wfnvOCStda67JE39KuWTjqUW1Etzlw McbHP4gmayYZ3GuoMP8Zel4XzpTCeD9Pj1v83Ax0sSvkdZafuTmBTP5oZsK/1e2RFIby Ls5L7d7HZlZn3ztaDcB059AD4Hadb5kbJKfpa82P70sLj+hbU0r+dyoDkUyrRB2wcLti rLtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=TWm/vystsci5zsEkUq3BtpYfQlOcNhpud2JV2ajFNGs=; fh=gWEIeDmQKdd45XEEz4u6Oa1DmedM0UlgJ92BAKEBfqE=; b=KYbb/O56r+yGLr9Npv8CBC2Y4GLofKxsF4ci4FiH5YnB3ZdjwhkBQYJlyNytuQJM53 hCUI138Jwd8ta/DEjlIDWVLplK/cHbCGYOpkzRpreLn2a4ma2qzuxioUp3tl1IX5uIsF 3E+KbJIsYq28md8MMkmU95uDllcJ3G3UXBgQLaVYMvurvc5/FGl1fmBVENbIgwpLx+7x OY0hLz1IDsqQTEHjfFcoB3ql0JBU9iS3aT5f/IMPETJHtAEZhvb9qDnBVE0Y4HE3AO25 1ZLUitee3ItoA1we5sYlDogXZfRTZQ5tonrOZFPd/7edEiQKrJDTNnHn50h6MDeE06kh 6EqA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774404591; x=1775009391; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TWm/vystsci5zsEkUq3BtpYfQlOcNhpud2JV2ajFNGs=; b=DkH5oNFfzSrQ67MIQ6RnP0Dqy1NSnjYWKSfyIaPeO8kuvqUt7J5JJc6NdTC7tIg3sB bBfFK26w1kfVDuxTBX9tFPIRtgn14G2sLLFWlvZEkjVxeGvMsUC0plq6JX9291uvVbj/ IZoPjQikOiHSy7ucrHaFYhizGnGlNPJcNZodsT4uRP9KtdBuPej4NBrEn3d9snE5iKOx xr6gen6j57+4riwEtLjvORUiK0AvQ3t+zTHQKNBIxDuGEc2fLTbbMCh0JkRh44jH48+2 PoeoY6W1LfZfRFV6pAEqPrh5s+L58LkykDmKzetPUI4h6cMu/emgVEFm3XFgxhQSVX3L 8JmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774404591; x=1775009391; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=TWm/vystsci5zsEkUq3BtpYfQlOcNhpud2JV2ajFNGs=; b=YV4cVCEnZJjAFO1JQlZzk0h4BnosTJxkX16JnNOmTvn78Z3fs1Fz7OZ7gSmhi6V4cc nDj3skjrHSu30IYtoGQE77ash8Kg15UfZr34HX5suorf0E4Zl4GSp3S0qPb2CkUNf3iN Hc6gTL/iHAe9uowfjG4lKiDyENCLoxJZUdax808eQZiZQVLPFwfYx0pfm8+mW9I9rtjc mPQlYf+ddli3Y3Q7rSFNS+aaW2m+e4/FI7Pyi7gN9VRw6f9RrSaT9O/XJBZPyzSHFQI1 wsfUDY6iuD5Rr/CcHdkikLojDHCMVa8i+qGC+214506PFfno4xyuMo0926Kp7u6ob4Yq f2dA== X-Gm-Message-State: AOJu0Yycp0Mk5/AQxdgehJsLj47WtK8ILrXoQGcmjK5Kf0uyrfW4dl2i yhTYg8h47jf0rPj77iQX/3jjq2ShJGvbJSf8VcxttTrqMTbGhSAfAXxmc9QyoV4VVg47TnTGITP xrPjrAnQ1FEFWY8T+LeCkFpQGdNbZGNU= X-Gm-Gg: ATEYQzxrKskolA55rLJECZZ4Ni/ZtcKYi2hbsCi2he45/BM7aAvw1p+vtHLJGm+nfpX LuqxiPaUjzBBKdUC6v5KIWHvUdFs50Rm/dId+OWEXPdXiNCtcDiPSfRQvEXBr1DMR85yDepsjy8 YDoEVr48lCTqQ30z3CM2jV+za8wiUesSqdNpl783TXa1iLnQ2EQOpF9qhLa+7wKLwpEREo/dOuc eqnoatz7viNtezo3IhUh9sROCuF1DNLutX6/ggxEq+aDRxqGtN/UhoZ12emkDtC8Uz/fxxB9yKp usX7BZ5O+ORYwCfT+X8wtkaEr+E8iYuGm9FJBNTjBJa3O1zfBCTWGEWLE3OmimaQ1Wt3eJJ15Ad eUz+Uvw== X-Received: by 2002:a05:6000:2a09:b0:43b:425b:ec3f with SMTP id ffacd0b85a97d-43b80526465mr5640029f8f.4.1774404590569; Tue, 24 Mar 2026 19:09:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: David Rowley Date: Wed, 25 Mar 2026 15:09:38 +1300 X-Gm-Features: AQROBzAI6g42rmcVLCgbu3XgP_VJD7XFafdXqMT8fhml-8tV1d-LBT5mlUDUC3w Message-ID: Subject: Re: Fix "could not find memoization table entry" To: Tender Wang Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000004f2b32064dcfc3d4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004f2b32064dcfc3d4 Content-Type: text/plain; charset="UTF-8" On Wed, 25 Mar 2026 at 13:31, David Rowley wrote: > Obviously, we don't want to back-patch anything that would cause a > user-visible change in the return value of hash_numeric(), so I've > been experimenting to see if there's any way to get PostgreSQL to > output any value from hash_numeric() larger than 2^31 and I've been > unable to. I tried: I was experimenting with a less risky fix by having the datum_image functions force the sign-extended representation of the Datum before hashing or comparing. Attached is a quick PoC of what that would look like. It does fix the reported problem. But it is a hack and doesn't fix the root cause of the issue. Despite the hackiness, I feel this might be better than the whack-a-mole approach of just fixing incorrect usages of the PG_RETURN_* macros as and when we find them. David --0000000000004f2b32064dcfc3d4 Content-Type: application/octet-stream; name="hack_to_fix_datum_image_problem.patch" Content-Disposition: attachment; filename="hack_to_fix_datum_image_problem.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn5eiai00 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXR1bS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdHVtLmMKaW5kZXggODgzMjc4NTU0MGYuLmVmMjAyYzgzZjQwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0dW0uYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvZGF0dW0uYwpAQCAtMjcxLDYgKzI3MSwyNyBAQCBkYXR1bV9pbWFnZV9lcShEYXR1bSB2 YWx1ZTEsIERhdHVtIHZhbHVlMiwgYm9vbCB0eXBCeVZhbCwgaW50IHR5cExlbikKIAogCWlmICh0 eXBCeVZhbCkKIAl7CisJCS8qCisJCSAqIFhYWCBoYWNrIHRvIGZpeCBpc3N1ZSB3aXRoIGZ1bmN0 aW9ucyBzdWNoIGFzIGhhc2hfbnVtZXJpYygpIG5vdAorCQkgKiByZXR1cm5pbmcgdGhlIGNvcnJl Y3QgdHlwZS4gIEZvcmNlIHNpZ24tZXh0ZW5kZWQgcmVwcmVzZW50YXRpb24uCisJCSAqLworCQlz d2l0Y2ggKHR5cExlbikKKwkJeworCQkJY2FzZSBzaXplb2YoY2hhcik6CisJCQkJdmFsdWUxID0g Q2hhckdldERhdHVtKERhdHVtR2V0Q2hhcih2YWx1ZTEpKTsKKwkJCQl2YWx1ZTIgPSBDaGFyR2V0 RGF0dW0oRGF0dW1HZXRDaGFyKHZhbHVlMikpOworCQkJCWJyZWFrOworCQkJY2FzZSBzaXplb2Yo aW50MTYpOgorCQkJCXZhbHVlMSA9IEludDE2R2V0RGF0dW0oRGF0dW1HZXRJbnQxNih2YWx1ZTEp KTsKKwkJCQl2YWx1ZTIgPSBJbnQxNkdldERhdHVtKERhdHVtR2V0SW50MTYodmFsdWUyKSk7CisJ CQkJYnJlYWs7CisJCQljYXNlIHNpemVvZihpbnQzMik6CisJCQkJdmFsdWUxID0gSW50MzJHZXRE YXR1bShEYXR1bUdldEludDMyKHZhbHVlMSkpOworCQkJCXZhbHVlMiA9IEludDMyR2V0RGF0dW0o RGF0dW1HZXRJbnQzMih2YWx1ZTIpKTsKKwkJCQlicmVhazsKKwkJCS8qIE5vdGhpbmcgbmVlZHMg ZG9uZSBmb3IgNjQtYml0IHR5cGVzICovCisJCX0KKwogCQlyZXN1bHQgPSAodmFsdWUxID09IHZh bHVlMik7CiAJfQogCWVsc2UgaWYgKHR5cExlbiA+IDApCkBAIC0zNDEsNyArMzYyLDI3IEBAIGRh dHVtX2ltYWdlX2hhc2goRGF0dW0gdmFsdWUsIGJvb2wgdHlwQnlWYWwsIGludCB0eXBMZW4pCiAJ dWludDMyCQlyZXN1bHQ7CiAKIAlpZiAodHlwQnlWYWwpCi0JCXJlc3VsdCA9IGhhc2hfYnl0ZXMo KHVuc2lnbmVkIGNoYXIgKikgJnZhbHVlLCBzaXplb2YoRGF0dW0pKTsKKwl7CisJCS8qCisJCSAq IFhYWCBoYWNrIHRvIGZpeCBpc3N1ZSB3aXRoIGZ1bmN0aW9ucyBzdWNoIGFzIGhhc2hfbnVtZXJp YygpIG5vdAorCQkgKiByZXR1cm5pbmcgdGhlIGNvcnJlY3QgdHlwZS4gIEZvcmNlIHNpZ24tZXh0 ZW5kZWQgcmVwcmVzZW50YXRpb24uCisJCSAqLworCQlzd2l0Y2ggKHR5cExlbikKKwkJeworCQkJ Y2FzZSBzaXplb2YoY2hhcik6CisJCQkJdmFsdWUgPSBDaGFyR2V0RGF0dW0oRGF0dW1HZXRDaGFy KHZhbHVlKSk7CisJCQkJYnJlYWs7CisJCQljYXNlIHNpemVvZihpbnQxNik6CisJCQkJdmFsdWUg PSBJbnQxNkdldERhdHVtKERhdHVtR2V0SW50MTYodmFsdWUpKTsKKwkJCQlicmVhazsKKwkJCWNh c2Ugc2l6ZW9mKGludDMyKToKKwkJCQl2YWx1ZSA9IEludDMyR2V0RGF0dW0oRGF0dW1HZXRJbnQz Mih2YWx1ZSkpOworCQkJCWJyZWFrOworCQkJLyogTm90aGluZyBuZWVkcyBkb25lIGZvciA2NC1i aXQgdHlwZXMgKi8KKwkJfQorCisJCXJlc3VsdCA9IGhhc2hfYnl0ZXMoKHVuc2lnbmVkIGNoYXIq KSAmdmFsdWUsIHNpemVvZihEYXR1bSkpOworCX0KIAllbHNlIGlmICh0eXBMZW4gPiAwKQogCQly ZXN1bHQgPSBoYXNoX2J5dGVzKCh1bnNpZ25lZCBjaGFyICopIERhdHVtR2V0UG9pbnRlcih2YWx1 ZSksIHR5cExlbik7CiAJZWxzZSBpZiAodHlwTGVuID09IC0xKQo= --0000000000004f2b32064dcfc3d4--