0005-Remove-no-longer-needed-casts-to-Pointer.patch

text/plain

Filename: 0005-Remove-no-longer-needed-casts-to-Pointer.patch
Type: text/plain
Part: 4
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 0005
Subject: Remove no longer needed casts to (Pointer)
File+
contrib/btree_gist/btree_utils_var.h 1 1
src/backend/access/heap/heaptoast.c 2 2
src/backend/catalog/aclchk.c 9 9
src/backend/catalog/pg_constraint.c 6 6
src/backend/utils/adt/arrayfuncs.c 1 1
src/backend/utils/adt/datum.c 3 3
src/backend/utils/adt/like_support.c 2 2
src/backend/utils/adt/numeric.c 3 3
src/backend/utils/adt/rangetypes.c 2 2
src/backend/utils/adt/rowtypes.c 2 2
src/backend/utils/cache/evtcache.c 1 1
src/include/fmgr.h 1 1
From 573406a6f5deed046a88eae62becc0bae7b4b24a Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 24 Nov 2025 11:02:35 +0100
Subject: [PATCH 5/6] Remove no longer needed casts to (Pointer)

---
 contrib/btree_gist/btree_utils_var.h |  2 +-
 src/backend/access/heap/heaptoast.c  |  4 ++--
 src/backend/catalog/aclchk.c         | 18 +++++++++---------
 src/backend/catalog/pg_constraint.c  | 12 ++++++------
 src/backend/utils/adt/arrayfuncs.c   |  2 +-
 src/backend/utils/adt/datum.c        |  6 +++---
 src/backend/utils/adt/like_support.c |  4 ++--
 src/backend/utils/adt/numeric.c      |  6 +++---
 src/backend/utils/adt/rangetypes.c   |  4 ++--
 src/backend/utils/adt/rowtypes.c     |  4 ++--
 src/backend/utils/cache/evtcache.c   |  2 +-
 src/include/fmgr.h                   |  2 +-
 12 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/contrib/btree_gist/btree_utils_var.h b/contrib/btree_gist/btree_utils_var.h
index 75ad33d24fc..6cb3aadf3c3 100644
--- a/contrib/btree_gist/btree_utils_var.h
+++ b/contrib/btree_gist/btree_utils_var.h
@@ -49,7 +49,7 @@ typedef struct
  */
 #define GBT_FREE_IF_COPY(ptr1, ptr2) \
 	do { \
-		if ((Pointer) (ptr1) != DatumGetPointer(ptr2)) \
+		if ((ptr1) != DatumGetPointer(ptr2)) \
 			pfree(ptr1); \
 	} while (0)
 
diff --git a/src/backend/access/heap/heaptoast.c b/src/backend/access/heap/heaptoast.c
index e148c9be482..60e765fbfce 100644
--- a/src/backend/access/heap/heaptoast.c
+++ b/src/backend/access/heap/heaptoast.c
@@ -569,7 +569,7 @@ toast_build_flattened_tuple(TupleDesc tupleDesc,
 	int			num_to_free;
 	int			i;
 	Datum		new_values[MaxTupleAttributeNumber];
-	Pointer		freeable_values[MaxTupleAttributeNumber];
+	void	   *freeable_values[MaxTupleAttributeNumber];
 
 	/*
 	 * We can pass the caller's isnull array directly to heap_form_tuple, but
@@ -593,7 +593,7 @@ toast_build_flattened_tuple(TupleDesc tupleDesc,
 			{
 				new_value = detoast_external_attr(new_value);
 				new_values[i] = PointerGetDatum(new_value);
-				freeable_values[num_to_free++] = (Pointer) new_value;
+				freeable_values[num_to_free++] = new_value;
 			}
 		}
 	}
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index cd139bd65a6..58d006986b8 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3125,7 +3125,7 @@ object_aclmask_ext(Oid classid, Oid objectid, Oid roleid,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(tuple);
@@ -3255,7 +3255,7 @@ pg_attribute_aclmask_ext(Oid table_oid, AttrNumber attnum, Oid roleid,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(attTuple);
@@ -3362,7 +3362,7 @@ pg_class_aclmask_ext(Oid table_oid, Oid roleid, AclMode mask,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(tuple);
@@ -3454,7 +3454,7 @@ pg_parameter_aclmask(const char *name, Oid roleid, AclMode mask, AclMaskHow how)
 		result = aclmask(acl, roleid, BOOTSTRAP_SUPERUSERID, mask, how);
 
 		/* if we have a detoasted copy, free it */
-		if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+		if (acl && acl != DatumGetPointer(aclDatum))
 			pfree(acl);
 
 		ReleaseSysCache(tuple);
@@ -3509,7 +3509,7 @@ pg_parameter_acl_aclmask(Oid acl_oid, Oid roleid, AclMode mask, AclMaskHow how)
 	result = aclmask(acl, roleid, BOOTSTRAP_SUPERUSERID, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(tuple);
@@ -3589,7 +3589,7 @@ pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	systable_endscan(scan);
@@ -3683,7 +3683,7 @@ pg_namespace_aclmask_ext(Oid nsp_oid, Oid roleid,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(tuple);
@@ -3819,7 +3819,7 @@ pg_type_aclmask_ext(Oid type_oid, Oid roleid, AclMode mask, AclMaskHow how,
 	result = aclmask(acl, roleid, ownerId, mask, how);
 
 	/* if we have a detoasted copy, free it */
-	if (acl && (Pointer) acl != DatumGetPointer(aclDatum))
+	if (acl && acl != DatumGetPointer(aclDatum))
 		pfree(acl);
 
 	ReleaseSysCache(tuple);
@@ -4003,7 +4003,7 @@ pg_attribute_aclcheck_all_ext(Oid table_oid, Oid roleid,
 			attmask = aclmask(acl, roleid, ownerId, mode, ACLMASK_ANY);
 
 			/* if we have a detoasted copy, free it */
-			if ((Pointer) acl != DatumGetPointer(aclDatum))
+			if (acl != DatumGetPointer(aclDatum))
 				pfree(acl);
 		}
 
diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c
index 9944e4bd2d1..5b2a8132306 100644
--- a/src/backend/catalog/pg_constraint.c
+++ b/src/backend/catalog/pg_constraint.c
@@ -1544,7 +1544,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 	if (numkeys <= 0 || numkeys > INDEX_MAX_KEYS)
 		elog(ERROR, "foreign key constraint cannot have %d columns", numkeys);
 	memcpy(conkey, ARR_DATA_PTR(arr), numkeys * sizeof(int16));
-	if ((Pointer) arr != DatumGetPointer(adatum))
+	if (arr != DatumGetPointer(adatum))
 		pfree(arr);				/* free de-toasted copy, if any */
 
 	adatum = SysCacheGetAttrNotNull(CONSTROID, tuple,
@@ -1556,7 +1556,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 		ARR_ELEMTYPE(arr) != INT2OID)
 		elog(ERROR, "confkey is not a 1-D smallint array");
 	memcpy(confkey, ARR_DATA_PTR(arr), numkeys * sizeof(int16));
-	if ((Pointer) arr != DatumGetPointer(adatum))
+	if (arr != DatumGetPointer(adatum))
 		pfree(arr);				/* free de-toasted copy, if any */
 
 	if (pf_eq_oprs)
@@ -1571,7 +1571,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 			ARR_ELEMTYPE(arr) != OIDOID)
 			elog(ERROR, "conpfeqop is not a 1-D Oid array");
 		memcpy(pf_eq_oprs, ARR_DATA_PTR(arr), numkeys * sizeof(Oid));
-		if ((Pointer) arr != DatumGetPointer(adatum))
+		if (arr != DatumGetPointer(adatum))
 			pfree(arr);			/* free de-toasted copy, if any */
 	}
 
@@ -1586,7 +1586,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 			ARR_ELEMTYPE(arr) != OIDOID)
 			elog(ERROR, "conppeqop is not a 1-D Oid array");
 		memcpy(pp_eq_oprs, ARR_DATA_PTR(arr), numkeys * sizeof(Oid));
-		if ((Pointer) arr != DatumGetPointer(adatum))
+		if (arr != DatumGetPointer(adatum))
 			pfree(arr);			/* free de-toasted copy, if any */
 	}
 
@@ -1601,7 +1601,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 			ARR_ELEMTYPE(arr) != OIDOID)
 			elog(ERROR, "conffeqop is not a 1-D Oid array");
 		memcpy(ff_eq_oprs, ARR_DATA_PTR(arr), numkeys * sizeof(Oid));
-		if ((Pointer) arr != DatumGetPointer(adatum))
+		if (arr != DatumGetPointer(adatum))
 			pfree(arr);			/* free de-toasted copy, if any */
 	}
 
@@ -1624,7 +1624,7 @@ DeconstructFkConstraintRow(HeapTuple tuple, int *numfks,
 				elog(ERROR, "confdelsetcols is not a 1-D smallint array");
 			num_delete_cols = ARR_DIMS(arr)[0];
 			memcpy(fk_del_set_cols, ARR_DATA_PTR(arr), num_delete_cols * sizeof(int16));
-			if ((Pointer) arr != DatumGetPointer(adatum))
+			if (arr != DatumGetPointer(adatum))
 				pfree(arr);		/* free de-toasted copy, if any */
 
 			*num_fk_del_set_cols = num_delete_cols;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index a464349ee33..6dc65d3d4cb 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -5687,7 +5687,7 @@ accumArrayResultArr(ArrayBuildStateArr *astate,
 	MemoryContextSwitchTo(oldcontext);
 
 	/* Release detoasted copy if any */
-	if ((Pointer) arg != DatumGetPointer(dvalue))
+	if (arg != DatumGetPointer(dvalue))
 		pfree(arg);
 
 	return astate;
diff --git a/src/backend/utils/adt/datum.c b/src/backend/utils/adt/datum.c
index c2b111b829e..dabcca6f4c5 100644
--- a/src/backend/utils/adt/datum.c
+++ b/src/backend/utils/adt/datum.c
@@ -299,9 +299,9 @@ datum_image_eq(Datum value1, Datum value2, bool typByVal, int typLen)
 							 len1 - VARHDRSZ) == 0);
 
 			/* Only free memory if it's a copy made here. */
-			if ((Pointer) arg1val != DatumGetPointer(value1))
+			if (arg1val != DatumGetPointer(value1))
 				pfree(arg1val);
-			if ((Pointer) arg2val != DatumGetPointer(value2))
+			if (arg2val != DatumGetPointer(value2))
 				pfree(arg2val);
 		}
 	}
@@ -355,7 +355,7 @@ datum_image_hash(Datum value, bool typByVal, int typLen)
 		result = hash_bytes((unsigned char *) VARDATA_ANY(val), len - VARHDRSZ);
 
 		/* Only free memory if it's a copy made here. */
-		if ((Pointer) val != DatumGetPointer(value))
+		if (val != DatumGetPointer(value))
 			pfree(val);
 	}
 	else if (typLen == -2)
diff --git a/src/backend/utils/adt/like_support.c b/src/backend/utils/adt/like_support.c
index 999f23f86d5..dca1d9be035 100644
--- a/src/backend/utils/adt/like_support.c
+++ b/src/backend/utils/adt/like_support.c
@@ -1035,7 +1035,7 @@ like_fixed_prefix(Const *patt_const, bool case_insensitive, Oid collation,
 		pattlen = VARSIZE_ANY_EXHDR(bstr);
 		patt = (char *) palloc(pattlen);
 		memcpy(patt, VARDATA_ANY(bstr), pattlen);
-		Assert((Pointer) bstr == DatumGetPointer(patt_const->constvalue));
+		Assert(bstr == DatumGetPointer(patt_const->constvalue));
 	}
 
 	match = palloc(pattlen + 1);
@@ -1577,7 +1577,7 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc, Oid collation)
 		len = VARSIZE_ANY_EXHDR(bstr);
 		workstr = (char *) palloc(len);
 		memcpy(workstr, VARDATA_ANY(bstr), len);
-		Assert((Pointer) bstr == DatumGetPointer(str_const->constvalue));
+		Assert(bstr == DatumGetPointer(str_const->constvalue));
 		cmpstr = str_const->constvalue;
 	}
 	else
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 2501007d981..1d626aecbe7 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -2194,7 +2194,7 @@ numeric_abbrev_convert(Datum original_datum, SortSupport ssup)
 	}
 
 	/* should happen only for external/compressed toasts */
-	if ((Pointer) original_varatt != DatumGetPointer(original_datum))
+	if (original_varatt != DatumGetPointer(original_datum))
 		pfree(original_varatt);
 
 	return result;
@@ -2284,9 +2284,9 @@ numeric_fast_cmp(Datum x, Datum y, SortSupport ssup)
 
 	result = cmp_numerics(nx, ny);
 
-	if ((Pointer) nx != DatumGetPointer(x))
+	if (nx != DatumGetPointer(x))
 		pfree(nx);
-	if ((Pointer) ny != DatumGetPointer(y))
+	if (ny != DatumGetPointer(y))
 		pfree(ny);
 
 	return result;
diff --git a/src/backend/utils/adt/rangetypes.c b/src/backend/utils/adt/rangetypes.c
index b7e9f6dc0a8..d8e5130d642 100644
--- a/src/backend/utils/adt/rangetypes.c
+++ b/src/backend/utils/adt/rangetypes.c
@@ -1513,9 +1513,9 @@ range_fast_cmp(Datum a, Datum b, SortSupport ssup)
 			cmp = range_cmp_bounds(typcache, &upper1, &upper2);
 	}
 
-	if ((Pointer) range_a != DatumGetPointer(a))
+	if (range_a != DatumGetPointer(a))
 		pfree(range_a);
-	if ((Pointer) range_b != DatumGetPointer(b))
+	if (range_b != DatumGetPointer(b))
 		pfree(range_b);
 
 	return cmp;
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index 9e5449f17d7..38e6fe1c43a 100644
--- a/src/backend/utils/adt/rowtypes.c
+++ b/src/backend/utils/adt/rowtypes.c
@@ -1529,9 +1529,9 @@ record_image_cmp(FunctionCallInfo fcinfo)
 				if ((cmpresult == 0) && (len1 != len2))
 					cmpresult = (len1 < len2) ? -1 : 1;
 
-				if ((Pointer) arg1val != DatumGetPointer(values1[i1]))
+				if (arg1val != DatumGetPointer(values1[i1]))
 					pfree(arg1val);
-				if ((Pointer) arg2val != DatumGetPointer(values2[i2]))
+				if (arg2val != DatumGetPointer(values2[i2]))
 					pfree(arg2val);
 			}
 			else
diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c
index b9d5a5998be..76ba2db5390 100644
--- a/src/backend/utils/cache/evtcache.c
+++ b/src/backend/utils/cache/evtcache.c
@@ -240,7 +240,7 @@ DecodeTextArrayToBitmapset(Datum array)
 	}
 
 	pfree(elems);
-	if ((Pointer) arr != DatumGetPointer(array))
+	if (arr != DatumGetPointer(array))
 		pfree(arr);
 
 	return bms;
diff --git a/src/include/fmgr.h b/src/include/fmgr.h
index 74fe3ea0575..c0dbe85ed1c 100644
--- a/src/include/fmgr.h
+++ b/src/include/fmgr.h
@@ -259,7 +259,7 @@ extern struct varlena *pg_detoast_datum_packed(struct varlena *datum);
  */
 #define PG_FREE_IF_COPY(ptr,n) \
 	do { \
-		if ((Pointer) (ptr) != PG_GETARG_POINTER(n)) \
+		if ((ptr) != PG_GETARG_POINTER(n)) \
 			pfree(ptr); \
 	} while (0)
 
-- 
2.52.0