get rid of Pointer type, mostly

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: get rid of Pointer type, mostly
Date: 2025-11-24 10:20:56
Message-ID: 4154950a-47ae-4223-bd01-1235cc50e933@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

In a previous thread[0], the question was asked, 'Why do we bother with
a "Pointer" type?'. So I looked into get rid of it.

There are two stages to this. One is changing all code that wants to do
pointer arithmetic to use char * instead of relying on Pointer being
char *. Then we can change Pointer to be void * and remove a bunch of
casts.

The second is getting rid of uses of Pointer for variables where you
might as well use void * directly. These are actually not that many.

This gets rid of all uses, except in the GIN code, which is full of
Pointer use, and it's part of the documented API. I'm not touching
that, not least because this kind of code

Pointer **extra_data = (Pointer **) PG_GETARG_POINTER(4);

needs more brain-bending to understand that I'm prepared to spend. So
as far as I'm concerned, the pointer type can continue to exist as a
curiosity of the GIN API, but in all other places, it wasn't really
doing much of anything anyway.

[0]:
https://www.postgresql.org/message-id/CA%2BhUKG%2BNFKnr%3DK4oybwDvT35dW%3DVAjAAfiuLxp%2B5JeZSOV3nBg%40mail.gmail.com

Attachment Content-Type Size
0001-Remove-useless-casts-to-Pointer.patch text/plain 2.6 KB
0002-Use-better-DatumGet-function.patch text/plain 1.2 KB
0003-Don-t-rely-on-pointer-arithmetic-with-Pointer-type.patch text/plain 14.2 KB
0004-Change-Pointer-to-void.patch text/plain 834 bytes
0005-Remove-no-longer-needed-casts-to-Pointer.patch text/plain 12.9 KB
0006-Remove-some-uses-of-the-Pointer-type.patch text/plain 6.3 KB

Browse pgsql-hackers by date

  From Date Subject
Next Message Bertrand Drouvot 2025-11-24 10:26:32 Remove useless casting to the same type
Previous Message Álvaro Herrera 2025-11-24 10:07:41 Re: [PATCH] Expose checkpoint timestamp and duration in pg_stat_checkpointer