Re: get rid of Pointer type, mostly

David Geier <geidav.pg@gmail.com>

From: David Geier <geidav.pg@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-11-24T18:46:27Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove no longer needed casts from Pointer

  2. Remove no longer needed casts to Pointer

  3. Change Pointer to void *

  4. Don't rely on pointer arithmetic with Pointer type

  5. Use more appropriate DatumGet* function

  6. Remove useless casts to Pointer

I'm in big favor of this change. Such types just cover up what's really
going on and make reading the code more difficult than needed,
especially for people new to the code base.

On 24.11.2025 19:26, Tom Lane wrote:
> Robert Haas <robertmhaas@gmail.com> writes:

> I can follow the argument that using the native type "void *" is
> better, since every C programmer must know that already.  But you
> cannot argue for this patch on that ground unless Pointer goes away
> entirely.  I don't understand leaving it in place for GIN.  It's
> not like GIN indexes are some hoary backwater that nobody pays
> attention to.

+1

The GIN code makes use of pointer but src/backend/access/gin only has 29
occurrences. If you like I can help out fixing up the GIN code and share
a page here. Let me know.

--
David Geier