postgres.git / summary / log / commit / refs
commit c3c240537f6da498186bfb07017a7b01b9a2c24f
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Mon Jan 12 15:12:56 2026 +0000
Avoid casting void * function arguments
In many cases, the cast would silently drop a const qualifier. To
fix, drop the unnecessary cast and let the compiler check the types
and qualifiers. Add const to read-only local variables, preserving
the const qualifiers from the function signatures.
Co-authored-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Co-authored-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/aUQHy/MmWq7c97wK%40ip-10-97-1-34.eu-west-3.compute.internal
src/backend/access/brin/brin_minmax_multi.c | 12 ++++++------
src/backend/access/common/heaptuple.c | 6 +++---
src/backend/access/heap/pruneheap.c | 4 ++--
src/backend/access/nbtree/nbtpage.c | 4 ++--
src/backend/access/nbtree/nbtpreprocesskeys.c | 4 ++--
src/backend/access/nbtree/nbtsplitloc.c | 4 ++--
src/backend/access/spgist/spgkdtreeproc.c | 8 ++++----
src/backend/statistics/extended_stats.c | 4 ++--
src/backend/statistics/mcv.c | 8 ++++----
src/backend/tsearch/spell.c | 4 ++--
src/backend/utils/adt/rangetypes_gist.c | 18 +++++++++---------
src/backend/utils/adt/rangetypes_spgist.c | 6 +++---
src/backend/utils/adt/rangetypes_typanalyze.c | 6 +++---
src/backend/utils/cache/typcache.c | 14 +++++++-------
src/bin/pg_dump/pg_dump.c | 2 +-
src/test/modules/injection_points/injection_points.c | 12 ++++++------
16 files changed, 58 insertions(+), 58 deletions(-)
diff --git a/src/backend/access/brin/brin_minmax_multi.c b/src/backend/access/brin/brin_minmax_multi.c
index 6b86b1fd889..75dd8d5083b 100644
--- a/src/backend/access/brin/brin_minmax_multi.c
+++ b/src/backend/access/brin/brin_minmax_multi.c
@@ -857,8 +857,8 @@ brin_range_deserialize(int maxvalues, SerializedRanges *serialized)
static int
compare_expanded_ranges(const void *a, const void *b, void *arg)
{
- ExpandedRange *ra = (ExpandedRange *) a;
- ExpandedRange *rb = (ExpandedRange *) b;
+ const ExpandedRange *ra = a;
+ const ExpandedRange *rb = b;
Datum r;
compare_context *cxt = (compare_context *) arg;
@@ -895,8 +895,8 @@ compare_expanded_ranges(const void *a, const void *b, void *arg)
static int
compare_values(const void *a, const void *b, void *arg)
{
- Datum *da = (Datum *) a;
- Datum *db = (Datum *) b;
+ const Datum *da = a;
+ const Datum *db = b;
Datum r;
compare_context *cxt = (compare_context *) arg;
@@ -1304,8 +1304,8 @@ merge_overlapping_ranges(FmgrInfo *cmp, Oid colloid,
static int
compare_distances(const void *a, const void *b)
{
- DistanceValue *da = (DistanceValue *) a;
- DistanceValue *db = (DistanceValue *) b;
+ const DistanceValue *da = a;
+ const DistanceValue *db = b;
if (da->value < db->value)
return 1;
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 61367b3235a..11bec20e82e 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -103,7 +103,7 @@ static HTAB *missing_cache = NULL;
static uint32
missing_hash(const void *key, Size keysize)
{
- const missing_cache_key *entry = (missing_cache_key *) key;
+ const missing_cache_key *entry = key;
return hash_bytes((const unsigned char *) DatumGetPointer(entry->value), entry->len);
}
@@ -111,8 +111,8 @@ missing_hash(const void *key, Size keysize)
static int
missing_match(const void *key1, const void *key2, Size keysize)
{
- const missing_cache_key *entry1 = (missing_cache_key *) key1;
- const missing_cache_key *entry2 = (missing_cache_key *) key2;
+ const missing_cache_key *entry1 = key1;
+ const missing_cache_key *entry2 = key2;
if (entry1->len != entry2->len)
return entry1->len > entry2->len ? 1 : -1;
diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c
index af788b29714..632c2427952 100644
--- a/src/backend/access/heap/pruneheap.c
+++ b/src/backend/access/heap/pruneheap.c
@@ -2021,8 +2021,8 @@ heap_log_freeze_eq(xlhp_freeze_plan *plan, HeapTupleFreeze *frz)
static int
heap_log_freeze_cmp(const void *arg1, const void *arg2)
{
- HeapTupleFreeze *frz1 = (HeapTupleFreeze *) arg1;
- HeapTupleFreeze *frz2 = (HeapTupleFreeze *) arg2;
+ const HeapTupleFreeze *frz1 = arg1;
+ const HeapTupleFreeze *frz2 = arg2;
if (frz1->xmax < frz2->xmax)
return -1;
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 2ff0085b96f..4125c185e8b 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -1462,8 +1462,8 @@ _bt_delitems_update(BTVacuumPosting *updatable, int nupdatable,
static int
_bt_delitems_cmp(const void *a, const void *b)
{
- TM_IndexDelete *indexdelete1 = (TM_IndexDelete *) a;
- TM_IndexDelete *indexdelete2 = (TM_IndexDelete *) b;
+ const TM_IndexDelete *indexdelete1 = a;
+ const TM_IndexDelete *indexdelete2 = b;
Assert(indexdelete1->id != indexdelete2->id);
diff --git a/src/backend/access/nbtree/nbtpreprocesskeys.c b/src/backend/access/nbtree/nbtpreprocesskeys.c
index 5235ef9a8f5..b028b0c3e88 100644
--- a/src/backend/access/nbtree/nbtpreprocesskeys.c
+++ b/src/backend/access/nbtree/nbtpreprocesskeys.c
@@ -1792,8 +1792,8 @@ _bt_unmark_keys(IndexScanDesc scan, int *keyDataMap)
static int
_bt_reorder_array_cmp(const void *a, const void *b)
{
- BTArrayKeyInfo *arraya = (BTArrayKeyInfo *) a;
- BTArrayKeyInfo *arrayb = (BTArrayKeyInfo *) b;
+ const BTArrayKeyInfo *arraya = a;
+ const BTArrayKeyInfo *arrayb = b;
return pg_cmp_s32(arraya->scan_key, arrayb->scan_key);
}
diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index 523abd64575..de9eca3c8b2 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -594,8 +594,8 @@ _bt_deltasortsplits(FindSplitData *state, double fillfactormult,
static int
_bt_splitcmp(const void *arg1, const void *arg2)
{
- SplitPoint *split1 = (SplitPoint *) arg1;
- SplitPoint *split2 = (SplitPoint *) arg2;
+ const SplitPoint *split1 = arg1;
+ const SplitPoint *split2 = arg2;
return pg_cmp_s16(split1->curdelta, split2->curdelta);
}
diff --git a/src/backend/access/spgist/spgkdtreeproc.c b/src/backend/access/spgist/spgkdtreeproc.c
index 6acda3fdcff..1ec0a4f59f3 100644
--- a/src/backend/access/spgist/spgkdtreeproc.c
+++ b/src/backend/access/spgist/spgkdtreeproc.c
@@ -84,8 +84,8 @@ typedef struct SortedPoint
static int
x_cmp(const void *a, const void *b)
{
- SortedPoint *pa = (SortedPoint *) a;
- SortedPoint *pb = (SortedPoint *) b;
+ const SortedPoint *pa = a;
+ const SortedPoint *pb = b;
if (pa->p->x == pb->p->x)
return 0;
@@ -95,8 +95,8 @@ x_cmp(const void *a, const void *b)
static int
y_cmp(const void *a, const void *b)
{
- SortedPoint *pa = (SortedPoint *) a;
- SortedPoint *pb = (SortedPoint *) b;
+ const SortedPoint *pa = a;
+ const SortedPoint *pb = b;
if (pa->p->y == pb->p->y)
return 0;
diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c
index c14d8d21bf0..b9a8f257042 100644
--- a/src/backend/statistics/extended_stats.c
+++ b/src/backend/statistics/extended_stats.c
@@ -862,8 +862,8 @@ int
multi_sort_compare(const void *a, const void *b, void *arg)
{
MultiSortSupport mss = (MultiSortSupport) arg;
- SortItem *ia = (SortItem *) a;
- SortItem *ib = (SortItem *) b;
+ const SortItem *ia = a;
+ const SortItem *ib = b;
int i;
for (i = 0; i < mss->ndims; i++)
diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c
index 390ad83497a..9749871b18e 100644
--- a/src/backend/statistics/mcv.c
+++ b/src/backend/statistics/mcv.c
@@ -402,8 +402,8 @@ count_distinct_groups(int numrows, SortItem *items, MultiSortSupport mss)
static int
compare_sort_item_count(const void *a, const void *b, void *arg)
{
- SortItem *ia = (SortItem *) a;
- SortItem *ib = (SortItem *) b;
+ const SortItem *ia = a;
+ const SortItem *ib = b;
if (ia->count == ib->count)
return 0;
@@ -465,8 +465,8 @@ static int
sort_item_compare(const void *a, const void *b, void *arg)
{
SortSupport ssup = (SortSupport) arg;
- SortItem *ia = (SortItem *) a;
- SortItem *ib = (SortItem *) b;
+ const SortItem *ia = a;
+ const SortItem *ib = b;
return ApplySortComparator(ia->values[0], ia->isnull[0],
ib->values[0], ib->isnull[0],
diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c
index 2e96c86b0b3..e3436dbddd2 100644
--- a/src/backend/tsearch/spell.c
+++ b/src/backend/tsearch/spell.c
@@ -210,8 +210,8 @@ cmpspellaffix(const void *s1, const void *s2)
static int
cmpcmdflag(const void *f1, const void *f2)
{
- CompoundAffixFlag *fv1 = (CompoundAffixFlag *) f1,
- *fv2 = (CompoundAffixFlag *) f2;
+ const CompoundAffixFlag *fv1 = f1;
+ const CompoundAffixFlag *fv2 = f2;
Assert(fv1->flagMode == fv2->flagMode);
diff --git a/src/backend/utils/adt/rangetypes_gist.c b/src/backend/utils/adt/rangetypes_gist.c
index 53470cd5006..cb9f769cdb2 100644
--- a/src/backend/utils/adt/rangetypes_gist.c
+++ b/src/backend/utils/adt/rangetypes_gist.c
@@ -1729,9 +1729,9 @@ get_gist_range_class(RangeType *range)
static int
single_bound_cmp(const void *a, const void *b, void *arg)
{
- SingleBoundSortItem *i1 = (SingleBoundSortItem *) a;
- SingleBoundSortItem *i2 = (SingleBoundSortItem *) b;
- TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
+ const SingleBoundSortItem *i1 = a;
+ const SingleBoundSortItem *i2 = b;
+ TypeCacheEntry *typcache = arg;
return range_cmp_bounds(typcache, &i1->bound, &i2->bound);
}
@@ -1742,9 +1742,9 @@ single_bound_cmp(const void *a, const void *b, void *arg)
static int
interval_cmp_lower(const void *a, const void *b, void *arg)
{
- NonEmptyRange *i1 = (NonEmptyRange *) a;
- NonEmptyRange *i2 = (NonEmptyRange *) b;
- TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
+ const NonEmptyRange *i1 = a;
+ const NonEmptyRange *i2 = b;
+ TypeCacheEntry *typcache = arg;
return range_cmp_bounds(typcache, &i1->lower, &i2->lower);
}
@@ -1755,9 +1755,9 @@ interval_cmp_lower(const void *a, const void *b, void *arg)
static int
interval_cmp_upper(const void *a, const void *b, void *arg)
{
- NonEmptyRange *i1 = (NonEmptyRange *) a;
- NonEmptyRange *i2 = (NonEmptyRange *) b;
- TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
+ const NonEmptyRange *i1 = a;
+ const NonEmptyRange *i2 = b;
+ TypeCacheEntry *typcache = arg;
return range_cmp_bounds(typcache, &i1->upper, &i2->upper);
}
diff --git a/src/backend/utils/adt/rangetypes_spgist.c b/src/backend/utils/adt/rangetypes_spgist.c
index f9db6869d0a..b25b468b83d 100644
--- a/src/backend/utils/adt/rangetypes_spgist.c
+++ b/src/backend/utils/adt/rangetypes_spgist.c
@@ -185,9 +185,9 @@ spg_range_quad_choose(PG_FUNCTION_ARGS)
static int
bound_cmp(const void *a, const void *b, void *arg)
{
- RangeBound *ba = (RangeBound *) a;
- RangeBound *bb = (RangeBound *) b;
- TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
+ const RangeBound *ba = a;
+ const RangeBound *bb = b;
+ TypeCacheEntry *typcache = arg;
return range_cmp_bounds(typcache, ba, bb);
}
diff --git a/src/backend/utils/adt/rangetypes_typanalyze.c b/src/backend/utils/adt/rangetypes_typanalyze.c
index 01f55b12ed5..38d12dedbc5 100644
--- a/src/backend/utils/adt/rangetypes_typanalyze.c
+++ b/src/backend/utils/adt/rangetypes_typanalyze.c
@@ -111,9 +111,9 @@ float8_qsort_cmp(const void *a1, const void *a2, void *arg)
static int
range_bound_qsort_cmp(const void *a1, const void *a2, void *arg)
{
- RangeBound *b1 = (RangeBound *) a1;
- RangeBound *b2 = (RangeBound *) a2;
- TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
+ const RangeBound *b1 = a1;
+ const RangeBound *b2 = a2;
+ TypeCacheEntry *typcache = arg;
return range_cmp_bounds(typcache, b1, b2);
}
diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c
index 96bbd64de2c..dc4b1a56414 100644
--- a/src/backend/utils/cache/typcache.c
+++ b/src/backend/utils/cache/typcache.c
@@ -235,8 +235,8 @@ shared_record_table_compare(const void *a, const void *b, size_t size,
void *arg)
{
dsa_area *area = (dsa_area *) arg;
- SharedRecordTableKey *k1 = (SharedRecordTableKey *) a;
- SharedRecordTableKey *k2 = (SharedRecordTableKey *) b;
+ const SharedRecordTableKey *k1 = a;
+ const SharedRecordTableKey *k2 = b;
TupleDesc t1;
TupleDesc t2;
@@ -259,8 +259,8 @@ shared_record_table_compare(const void *a, const void *b, size_t size,
static uint32
shared_record_table_hash(const void *a, size_t size, void *arg)
{
- dsa_area *area = (dsa_area *) arg;
- SharedRecordTableKey *k = (SharedRecordTableKey *) a;
+ dsa_area *area = arg;
+ const SharedRecordTableKey *k = a;
TupleDesc t;
if (k->shared)
@@ -2013,7 +2013,7 @@ lookup_rowtype_tupdesc_domain(Oid type_id, int32 typmod, bool noError)
static uint32
record_type_typmod_hash(const void *data, size_t size)
{
- RecordCacheEntry *entry = (RecordCacheEntry *) data;
+ const RecordCacheEntry *entry = data;
return hashRowType(entry->tupdesc);
}
@@ -2024,8 +2024,8 @@ record_type_typmod_hash(const void *data, size_t size)
static int
record_type_typmod_compare(const void *a, const void *b, size_t size)
{
- RecordCacheEntry *left = (RecordCacheEntry *) a;
- RecordCacheEntry *right = (RecordCacheEntry *) b;
+ const RecordCacheEntry *left = a;
+ const RecordCacheEntry *right = b;
return equalRowTypes(left->tupdesc, right->tupdesc) ? 0 : 1;
}
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index d8a6b8ab0d5..687dc98e46d 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -11102,7 +11102,7 @@ fetchAttributeStats(Archive *fout)
static char *
dumpRelationStats_dumper(Archive *fout, const void *userArg, const TocEntry *te)
{
- const RelStatsInfo *rsinfo = (RelStatsInfo *) userArg;
+ const RelStatsInfo *rsinfo = userArg;
static PGresult *res;
static int rownum;
PQExpBuffer query;
diff --git a/src/test/modules/injection_points/injection_points.c b/src/test/modules/injection_points/injection_points.c
index 9c3806f5958..3de0491e0ec 100644
--- a/src/test/modules/injection_points/injection_points.c
+++ b/src/test/modules/injection_points/injection_points.c
@@ -189,7 +189,7 @@ injection_init_shmem(void)
* otherwise.
*/
static bool
-injection_point_allowed(InjectionPointCondition *condition)
+injection_point_allowed(const InjectionPointCondition *condition)
{
bool result = true;
@@ -232,8 +232,8 @@ injection_points_cleanup(int code, Datum arg)
void
injection_error(const char *name, const void *private_data, void *arg)
{
- InjectionPointCondition *condition = (InjectionPointCondition *) private_data;
- char *argstr = (char *) arg;
+ const InjectionPointCondition *condition = private_data;
+ char *argstr = arg;
if (!injection_point_allowed(condition))
return;
@@ -248,8 +248,8 @@ injection_error(const char *name, const void *private_data, void *arg)
void
injection_notice(const char *name, const void *private_data, void *arg)
{
- InjectionPointCondition *condition = (InjectionPointCondition *) private_data;
- char *argstr = (char *) arg;
+ const InjectionPointCondition *condition = private_data;
+ char *argstr = arg;
if (!injection_point_allowed(condition))
return;
@@ -268,7 +268,7 @@ injection_wait(const char *name, const void *private_data, void *arg)
uint32 old_wait_counts = 0;
int index = -1;
uint32 injection_wait_event = 0;
- InjectionPointCondition *condition = (InjectionPointCondition *) private_data;
+ const InjectionPointCondition *condition = private_data;
if (inj_state == NULL)
injection_init_shmem();
[parent: 707f905399b4]