summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/array_selfuncs.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2025-10-31 10:45:02 +0100
committerPeter Eisentraut <peter@eisentraut.org>2025-10-31 10:47:25 +0100
commit8a27d418f8fc08b62f371c1b167efbfbf0a2a24e (patch)
tree414b7c6d0f4813aadb4b80f41774131180fe867e /src/backend/utils/adt/array_selfuncs.c
parentaa4535307e3d432f44b4c76b8ffebc5a0789250c (diff)
Mark function arguments of type "Datum *" as "const Datum *" where possible
Several functions in the codebase accept "Datum *" parameters but do not modify the pointed-to data. These have been updated to take "const Datum *" instead, improving type safety and making the interfaces clearer about their intent. This change helps the compiler catch accidental modifications and better documents immutability of arguments. Most of "Datum *" parameters have a pairing "bool *isnull" parameter, they are constified as well. No functional behavior is changed by this patch. Author: Chao Li <lic@highgo.com> Discussion: https://www.postgresql.org/message-id/flat/CAEoWx2msfT0knvzUa72ZBwu9LR_RLY4on85w2a9YpE-o2By5HQ@mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/array_selfuncs.c')
-rw-r--r--src/backend/utils/adt/array_selfuncs.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/backend/utils/adt/array_selfuncs.c b/src/backend/utils/adt/array_selfuncs.c
index cf6fbf8652c..4dab35b0057 100644
--- a/src/backend/utils/adt/array_selfuncs.c
+++ b/src/backend/utils/adt/array_selfuncs.c
@@ -39,25 +39,25 @@
static Selectivity calc_arraycontsel(VariableStatData *vardata, Datum constval,
Oid elemtype, Oid operator);
-static Selectivity mcelem_array_selec(ArrayType *array,
+static Selectivity mcelem_array_selec(const ArrayType *array,
TypeCacheEntry *typentry,
- Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- float4 *hist, int nhist,
+ const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const float4 *hist, int nhist,
Oid operator);
-static Selectivity mcelem_array_contain_overlap_selec(Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- Datum *array_data, int nitems,
+static Selectivity mcelem_array_contain_overlap_selec(const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const Datum *array_data, int nitems,
Oid operator, TypeCacheEntry *typentry);
-static Selectivity mcelem_array_contained_selec(Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- Datum *array_data, int nitems,
- float4 *hist, int nhist,
+static Selectivity mcelem_array_contained_selec(const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const Datum *array_data, int nitems,
+ const float4 *hist, int nhist,
Oid operator, TypeCacheEntry *typentry);
static float *calc_hist(const float4 *hist, int nhist, int n);
static float *calc_distr(const float *p, int n, int m, float rest);
static int floor_log2(uint32 n);
-static bool find_next_mcelem(Datum *mcelem, int nmcelem, Datum value,
+static bool find_next_mcelem(const Datum *mcelem, int nmcelem, Datum value,
int *index, TypeCacheEntry *typentry);
static int element_compare(const void *key1, const void *key2, void *arg);
static int float_compare_desc(const void *key1, const void *key2);
@@ -425,10 +425,10 @@ calc_arraycontsel(VariableStatData *vardata, Datum constval,
* mcelem_array_contained_selec depending on the operator.
*/
static Selectivity
-mcelem_array_selec(ArrayType *array, TypeCacheEntry *typentry,
- Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- float4 *hist, int nhist,
+mcelem_array_selec(const ArrayType *array, TypeCacheEntry *typentry,
+ const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const float4 *hist, int nhist,
Oid operator)
{
Selectivity selec;
@@ -518,9 +518,9 @@ mcelem_array_selec(ArrayType *array, TypeCacheEntry *typentry,
* fraction of nonempty arrays in the column.
*/
static Selectivity
-mcelem_array_contain_overlap_selec(Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- Datum *array_data, int nitems,
+mcelem_array_contain_overlap_selec(const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const Datum *array_data, int nitems,
Oid operator, TypeCacheEntry *typentry)
{
Selectivity selec,
@@ -699,10 +699,10 @@ mcelem_array_contain_overlap_selec(Datum *mcelem, int nmcelem,
* ... * fn^on * (1 - fn)^(1 - on), o1, o2, ..., on) | o1 + o2 + .. on = m
*/
static Selectivity
-mcelem_array_contained_selec(Datum *mcelem, int nmcelem,
- float4 *numbers, int nnumbers,
- Datum *array_data, int nitems,
- float4 *hist, int nhist,
+mcelem_array_contained_selec(const Datum *mcelem, int nmcelem,
+ const float4 *numbers, int nnumbers,
+ const Datum *array_data, int nitems,
+ const float4 *hist, int nhist,
Oid operator, TypeCacheEntry *typentry)
{
int mcelem_index,
@@ -1136,7 +1136,7 @@ floor_log2(uint32 n)
* exact match.)
*/
static bool
-find_next_mcelem(Datum *mcelem, int nmcelem, Datum value, int *index,
+find_next_mcelem(const Datum *mcelem, int nmcelem, Datum value, int *index,
TypeCacheEntry *typentry)
{
int l = *index,