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 1w4rgT-002dLC-11 for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 02:39:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4rgR-003h7w-1O for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 02:39:55 +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.96) (envelope-from ) id 1w4rgR-003h7l-0T for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 02:39:55 +0000 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4rgP-00000000ijj-3RyQ for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 02:39:54 +0000 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-439b7c2788dso2173799f8f.1 for ; Mon, 23 Mar 2026 19:39:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774319992; cv=none; d=google.com; s=arc-20240605; b=EnJxEiNMCxGqVeL0iWJifxDkfbFZWNBIAwqVv4a0z8DdfCXnCPa8GA4s83+7BNu2Nr tJPM5uJIoLmdDtwmU32iO+hcgqWIeoDgSDm1+o7kWY9mdbboKS0PiRWqMWIhxZ2/zmvf GmbnBZ5E83YOr4yKDIwgCjrTuvsTsM1jv1MCxwktaLJ1Uz+5/FuYmd5VWEEAkW0IuHjj BVuOUMgivuoNr0+U67KobxJ7fwXaW68tX1AupAsCbXhn4l7ZI6zkcWaP+rFVyPOLjdvL tSc1y4K4QvZ9dKfWqNa6XxcOjo5Gwf/TpdeFuWuknTiBsccLaZugQwxawtd9dBUGryre NQww== 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=OuXL3we3BlaDNYxpNW6gShpVikDM59GUSBt+mlQhQGU=; fh=gWEIeDmQKdd45XEEz4u6Oa1DmedM0UlgJ92BAKEBfqE=; b=cF87xueQ8JRvzDgaTx07pAlEHdh40m1oKl4cLqgavs6GV1rOvtxSz67eH4cSaq6coU 64eRtHNdWPxA+Z8eTX8Y0Ys6kN/ZnHHe7saxqj2c1S4kPZCy4z7C/+51L/wuVUYNslKW 53vIwYNVNbFlQIdhclJ3ItpTA18lx3jXwrRrxjkQTzgnRWybIOdtTBYWTom6Q17WDkML BVAA+1ii/Qr4CPWqZaunkTLX+/OyAuohOSy62oJhDQr7IqZCx7YVrsHGJmf3tijrJCdN 3dy2stDWko9bDayZ905SF8CrBaPidqAPAPrdU3RejmVMk+s08g9i00CHdqrm1ZwE11Bl +y6A==; 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=1774319992; x=1774924792; 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=OuXL3we3BlaDNYxpNW6gShpVikDM59GUSBt+mlQhQGU=; b=aTrV6ZAlScuULof8EN4tlbb51LZNhF19+jkcu8nsMmRrnu7RTwoB8upjARrRB+FKti Xb34x/MZE7ZEf1va/FRV7tG7MK+NiyQiLm8m98Jx7KDchfrDPUS+dcWkPXP99LXFc4xv C33wTw03f/cW/Tmff420MOIWsaDBN+QMRjOKackSOjuT+jUQKsNhLw6dFs1DV1b+oBxl Ox9GIfGahfFeSPw8SfN7fAdNLY/8Th5MlaAd270zM7wRqFl11RtPNDvnXKtMXVKj5YIe kJojazrD6iNDsGVSjhQep9pnXyirOdR4vtGnK1Ud0Hl1IEKnLlAsldJsN+W02Y78FmkE vLPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774319992; x=1774924792; 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=OuXL3we3BlaDNYxpNW6gShpVikDM59GUSBt+mlQhQGU=; b=NQBZzVXSTHMaJYdVimlVUi1ejcdiGs0S3U3md9IlmzoIQfJbObjCD2JYrs1N0Ahjvg JyT2r7OiV0aLPATvGKmYndhO2wSvNX1zZlqvdq/T08ewIWWsTdI5jpaLhpRHlEmx+V24 V1GayZVpiKE0BiKdG4qsFRL4Nz/3J8b+HxEmrw0TGbx/Xbm9zCr/CyPe2L26pkhJOkhS wFD9lUbji5wD5fDuJQTQciG9DSWsz/49dse8cJYK6iRAGKvX+CBumqsErci5vAnxvQsv QDWue6Wcg4x67UlWnncZP08Y3Pmyun2KtEnwS/6a2X6coCarNkAIgHeli5AjLfIJcuAz Gy/A== X-Gm-Message-State: AOJu0YzR/fz6tnw1X/Tp1tDWOWsg6NcsP6/qw+0aNGy+VY2P5Q4p92y7 A6/tiPPlS9kCexOSlsFPOVu/DkFGN8IJlnLfBdkH8vv2794OyUAapL9cVMs/wHhvumuWlwcZ1RQ DNm5tcvi2esUg1iyvMbfbtsTAyjPs/MM= X-Gm-Gg: ATEYQzw8Cp6MmYJr++Jad7xpbsK7dQ9aT3f9r7K3kCTayQPW3hoty0XqHTbVUcz2MDU aUCWvuyBRt3wLAKdG7G9Wq3XX9kGYeOTFewDQPWJhtK71nWYuOMM0UDJq7vAVGaJnJ3K6H+MQen ytx9Iklq31OozvZsCYUYvX8SiWLD3gD8Zv0DYX+kLxW7SSpsbyfXf/nxzuf729BZcZWmK4VmGDu 89Vyv2XPryB9ftwYpDLlP9smXvxgdQ1NL+qwb2ZSFxrQNQCkfUf6Y4WtaA0UEO9Qm5dmCZLikKX BghnjzpOz/pgEE9lJR8oluwUNOgL8gKu22RXQcg5cxV+e9DVApd5a4hI3BS4zWDx8y3Fr5XAxf+ ZQz88jJsj X-Received: by 2002:a05:6000:1a8d:b0:43b:3c4c:9867 with SMTP id ffacd0b85a97d-43b6428705amr21114883f8f.43.1774319992192; Mon, 23 Mar 2026 19:39:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: David Rowley Date: Tue, 24 Mar 2026 15:39:40 +1300 X-Gm-Features: AQROBzCRtif8VyzYemdyHXc-ogVMxYW_01CO8mtTSFSUbQCzjwX3eZbjjWIvt_A Message-ID: Subject: Re: Fix "could not find memoization table entry" To: Tender Wang Cc: PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, 24 Mar 2026 at 14:10, Tender Wang wrote: > Actually, I haven't quite figured out why `typLen` cannot be used here. This is because we sign-extend rather than zero-extend up to Datum. Consider this code from master: typedef uint64_t Datum; static inline Datum Int32GetDatum(int32 X) { return (Datum) X; } So we cast to uint64_t when converting int32 to Datum. And consider the output of this C program: drowley@amd3990x:~$ cat datum.c #include #include int main(void) { int32_t i32 = -1; uint64_t i64 = (uint64_t) i32; for (int i = 0; i < 64; i++) { putchar(i64 & 0x8000000000000000ULL ? '1' : '0'); i64 <<= 1; } putchar('\n'); return 0; } drowley@amd3990x:~$ gcc datum.c -o datum && ./datum 1111111111111111111111111111111111111111111111111111111111111111 If you only look at the lower 32 bits of that Datum, then you're not looking at the entire value. I don't have hardware to try it, but I also don't suppose comparing the first attlen bytes of a Datum does the same thing on big-endian machines as that would look at the most significant side of the Datum rather than the least significant side as it would on little-endian. David