0006-Remove-some-uses-of-the-Pointer-type.patch
text/plain
Filename: 0006-Remove-some-uses-of-the-Pointer-type.patch
Type: text/plain
Part: 5
Message:
get rid of Pointer type, mostly
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0006
Subject: Remove some uses of the Pointer type
| File | + | − |
|---|---|---|
| contrib/amcheck/verify_heapam.c | 1 | 1 |
| src/backend/access/common/heaptuple.c | 1 | 1 |
| src/backend/access/common/toast_internals.c | 1 | 1 |
| src/backend/access/heap/heaptoast.c | 1 | 1 |
| src/backend/nodes/tidbitmap.c | 2 | 2 |
| src/backend/replication/logical/reorderbuffer.c | 2 | 2 |
| src/backend/utils/adt/rangetypes.c | 3 | 3 |
| src/bin/initdb/initdb.c | 2 | 2 |
| src/include/postgres.h | 2 | 2 |
From 467201808f4537291513c2151ff3266723b64314 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 24 Nov 2025 11:02:35 +0100
Subject: [PATCH 6/6] Remove some uses of the Pointer type
everywhere except GIN
---
contrib/amcheck/verify_heapam.c | 2 +-
src/backend/access/common/heaptuple.c | 2 +-
src/backend/access/common/toast_internals.c | 2 +-
src/backend/access/heap/heaptoast.c | 2 +-
src/backend/nodes/tidbitmap.c | 4 ++--
src/backend/replication/logical/reorderbuffer.c | 4 ++--
src/backend/utils/adt/rangetypes.c | 6 +++---
src/bin/initdb/initdb.c | 4 ++--
src/include/postgres.h | 4 ++--
9 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/contrib/amcheck/verify_heapam.c b/contrib/amcheck/verify_heapam.c
index 4963e9245cb..aa9974a867b 100644
--- a/contrib/amcheck/verify_heapam.c
+++ b/contrib/amcheck/verify_heapam.c
@@ -1557,7 +1557,7 @@ check_toast_tuple(HeapTuple toasttup, HeapCheckContext *ctx,
{
int32 chunk_seq;
int32 last_chunk_seq = (extsize - 1) / TOAST_MAX_CHUNK_SIZE;
- Pointer chunk;
+ void *chunk;
bool isnull;
int32 chunksize;
int32 expected_size;
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 74a52d87067..36b09ea5bff 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -321,7 +321,7 @@ fill_val(CompactAttribute *att,
else if (att->attlen == -1)
{
/* varlena */
- Pointer val = DatumGetPointer(datum);
+ void *val = DatumGetPointer(datum);
*infomask |= HEAP_HASVARWIDTH;
if (VARATT_IS_EXTERNAL(val))
diff --git a/src/backend/access/common/toast_internals.c b/src/backend/access/common/toast_internals.c
index 63b848473f8..ba6ef6f4e72 100644
--- a/src/backend/access/common/toast_internals.c
+++ b/src/backend/access/common/toast_internals.c
@@ -128,7 +128,7 @@ toast_save_datum(Relation rel, Datum value,
int32 chunk_seq = 0;
char *data_p;
int32 data_todo;
- Pointer dval = DatumGetPointer(value);
+ void *dval = DatumGetPointer(value);
int num_indexes;
int validIndex;
diff --git a/src/backend/access/heap/heaptoast.c b/src/backend/access/heap/heaptoast.c
index 60e765fbfce..a049d7c7e81 100644
--- a/src/backend/access/heap/heaptoast.c
+++ b/src/backend/access/heap/heaptoast.c
@@ -696,7 +696,7 @@ heap_fetch_toast_slice(Relation toastrel, Oid valueid, int32 attrsize,
while ((ttup = systable_getnext_ordered(toastscan, ForwardScanDirection)) != NULL)
{
int32 curchunk;
- Pointer chunk;
+ void *chunk;
bool isnull;
char *chunkdata;
int32 chunksize;
diff --git a/src/backend/nodes/tidbitmap.c b/src/backend/nodes/tidbitmap.c
index 23d97b3a6c8..425c1177b22 100644
--- a/src/backend/nodes/tidbitmap.c
+++ b/src/backend/nodes/tidbitmap.c
@@ -1550,11 +1550,11 @@ tbm_calculate_entries(Size maxbytes)
/*
* Estimate number of hashtable entries we can have within maxbytes. This
* estimates the hash cost as sizeof(PagetableEntry), which is good enough
- * for our purpose. Also count an extra Pointer per entry for the arrays
+ * for our purpose. Also count an extra pointer per entry for the arrays
* created during iteration readout.
*/
nbuckets = maxbytes /
- (sizeof(PagetableEntry) + sizeof(Pointer) + sizeof(Pointer));
+ (sizeof(PagetableEntry) + sizeof(void *) + sizeof(void *));
nbuckets = Min(nbuckets, INT_MAX - 1); /* safety limit */
nbuckets = Max(nbuckets, 16); /* sanity limit */
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index eb6a84554b7..a014ef72aca 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -5003,7 +5003,7 @@ ReorderBufferToastAppendChunk(ReorderBuffer *rb, ReorderBufferTXN *txn,
bool found;
int32 chunksize;
bool isnull;
- Pointer chunk;
+ void *chunk;
TupleDesc desc = RelationGetDescr(relation);
Oid chunk_id;
int32 chunk_seq;
@@ -5192,7 +5192,7 @@ ReorderBufferToastReplace(ReorderBuffer *rb, ReorderBufferTXN *txn,
bool cisnull;
ReorderBufferChange *cchange;
HeapTuple ctup;
- Pointer chunk;
+ void *chunk;
cchange = dlist_container(ReorderBufferChange, node, it.cur);
ctup = cchange->data.tp.newtuple;
diff --git a/src/backend/utils/adt/rangetypes.c b/src/backend/utils/adt/rangetypes.c
index d8e5130d642..b887f21f10e 100644
--- a/src/backend/utils/adt/rangetypes.c
+++ b/src/backend/utils/adt/rangetypes.c
@@ -1962,7 +1962,7 @@ range_serialize(TypeCacheEntry *typcache, RangeBound *lower, RangeBound *upper,
RangeType *range;
int cmp;
Size msize;
- Pointer ptr;
+ char *ptr;
int16 typlen;
bool typbyval;
char typalign;
@@ -2070,7 +2070,7 @@ range_serialize(TypeCacheEntry *typcache, RangeBound *lower, RangeBound *upper,
typstorage);
}
- *((char *) ptr) = flags;
+ *ptr = flags;
return range;
}
@@ -2953,7 +2953,7 @@ datum_write(char *ptr, Datum datum, bool typbyval, char typalign,
else if (typlen == -1)
{
/* varlena */
- Pointer val = DatumGetPointer(datum);
+ void *val = DatumGetPointer(datum);
if (VARATT_IS_EXTERNAL(val))
{
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 92fe2f531f7..30fce0d5f37 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -1574,11 +1574,11 @@ bootstrap_template1(void)
sprintf(buf, "%d", NAMEDATALEN);
bki_lines = replace_token(bki_lines, "NAMEDATALEN", buf);
- sprintf(buf, "%d", (int) sizeof(Pointer));
+ sprintf(buf, "%d", (int) sizeof(void *));
bki_lines = replace_token(bki_lines, "SIZEOF_POINTER", buf);
bki_lines = replace_token(bki_lines, "ALIGNOF_POINTER",
- (sizeof(Pointer) == 4) ? "i" : "d");
+ (sizeof(void *) == 4) ? "i" : "d");
bki_lines = replace_token(bki_lines, "POSTGRES",
escape_quotes_bki(username));
diff --git a/src/include/postgres.h b/src/include/postgres.h
index 357cbd6fd96..5f1c6b0a79e 100644
--- a/src/include/postgres.h
+++ b/src/include/postgres.h
@@ -318,10 +318,10 @@ CommandIdGetDatum(CommandId X)
* DatumGetPointer
* Returns pointer value of a datum.
*/
-static inline Pointer
+static inline void *
DatumGetPointer(Datum X)
{
- return (Pointer) (uintptr_t) X;
+ return (void *) (uintptr_t) X;
}
/*
--
2.52.0