Mark function arguments of type "Datum *" as "const Datum *" where possible
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 31 Oct 2025 09:45:02 +0000 (10:45 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 31 Oct 2025 09:47:25 +0000 (10:47 +0100)
commit8a27d418f8fc08b62f371c1b167efbfbf0a2a24e
tree414b7c6d0f4813aadb4b80f41774131180fe867e
parentaa4535307e3d432f44b4c76b8ffebc5a0789250c
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
34 files changed:
doc/src/sgml/spi.sgml
src/backend/access/brin/brin_minmax_multi.c
src/backend/access/hash/hashutil.c
src/backend/access/heap/heaptoast.c
src/backend/access/nbtree/nbtpreprocesskeys.c
src/backend/access/nbtree/nbtsort.c
src/backend/access/spgist/spgdoinsert.c
src/backend/access/spgist/spgtextproc.c
src/backend/executor/execPartition.c
src/backend/executor/nodeIndexscan.c
src/backend/executor/spi.c
src/backend/partitioning/partbounds.c
src/backend/partitioning/partprune.c
src/backend/statistics/attribute_stats.c
src/backend/tsearch/ts_selfuncs.c
src/backend/utils/adt/array_selfuncs.c
src/backend/utils/adt/arrayfuncs.c
src/backend/utils/adt/json.c
src/backend/utils/adt/jsonfuncs.c
src/backend/utils/adt/multirangetypes_selfuncs.c
src/backend/utils/adt/network_selfuncs.c
src/backend/utils/adt/orderedsetaggs.c
src/backend/utils/adt/rangetypes_selfuncs.c
src/backend/utils/adt/xml.c
src/backend/utils/cache/catcache.c
src/include/access/hash.h
src/include/access/heaptoast.h
src/include/access/spgist_private.h
src/include/executor/spi.h
src/include/partitioning/partbounds.h
src/include/utils/array.h
src/include/utils/jsonb.h
src/include/utils/xml.h
src/test/modules/spgist_name_ops/spgist_name_ops.c