Re: Fix "could not find memoization table entry" - Mailing list pgsql-hackers

From David Rowley
Subject Re: Fix "could not find memoization table entry"
Date
Msg-id CAApHDvrSSeLNWzQWWcLfZKWwHd=XocVs3abmTmvaSD_sx-dkNQ@mail.gmail.com
Whole thread Raw
In response to Fix "could not find memoization table entry"  (Tender Wang <tndrwang@gmail.com>)
Responses Re: Fix "could not find memoization table entry"
Re: Fix "could not find memoization table entry"
List pgsql-hackers
On Mon, 23 Mar 2026 at 19:30, Tender Wang <tndrwang@gmail.com> wrote:
> Recently, I encountered an error: could not find memoization table

> The hkeys returned by datum_image_hash() are different, so we can't
> find the entry in the hash table.
>
> In the datum_image_hash(), if typByVal is true, calling
> result = hash_bytes((unsigned char *) &value, sizeof(Datum));
>
> I think we should use typLen here, not sizeof(Datum).
> I tried this way and didn't encounter any errors again.

The Datum values should be the same. You can't just compare the lowest
attlen bytes of a Datum.

It looks to me like the bug is in hash_numeric(). Seems like it has no
idea what type it's meant to return. hash_numeric_extended() doesn't
seem to be much better.

Do you still get the ERROR after patching with the attached?

David

Attachment

pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Introduce XID age based replication slot invalidation
Next
From: Masahiko Sawada
Date:
Subject: Re: [PATCH] Add max_logical_replication_slots GUC