Re: BUG #17855: Uninitialised memory used when the name type value processed in binary mode of Memoize

David Rowley <dgrowleyml@gmail.com>

From: David Rowley <dgrowleyml@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2023-03-23T04:01:24Z
Lists: pgsql-bugs
On Thu, 23 Mar 2023 at 16:25, Peter Geoghegan <pg@bowt.ie> wrote:
> Have you seen the comments about the cstring/name_ops hack mentioning
> a SIGSEGV in btrescan()? Those were added around the time index-only
> scans first went in.

I'd not seen it. That's a bit disappointing. Is all this just to work
around not having to store the full 64 bytes for a name in indexes?

Seems it there are a few hacks that try to make this work.  I wonder
if we should just invent new hacks in the form of a new version of
datum_image_eq that accepts a pointer to a FormData_pg_attribute
instead of typByVal and typLen then just special case NAMEOID types to
always compare as cstrings. Same for datum_image_hash().

David



Commits

  1. Ensure we allocate NAMEDATALEN bytes for names in Index Only Scans