mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
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
This commit is contained in:
@@ -276,7 +276,7 @@ static int compare_values(const void *a, const void *b, void *arg);
|
||||
* function (which should be BTLessStrategyNumber).
|
||||
*/
|
||||
static void
|
||||
AssertArrayOrder(FmgrInfo *cmp, Oid colloid, Datum *values, int nvalues)
|
||||
AssertArrayOrder(FmgrInfo *cmp, Oid colloid, const Datum *values, int nvalues)
|
||||
{
|
||||
int i;
|
||||
Datum lt;
|
||||
|
||||
@@ -316,7 +316,7 @@ _hash_get_indextuple_hashkey(IndexTuple itup)
|
||||
*/
|
||||
bool
|
||||
_hash_convert_tuple(Relation index,
|
||||
Datum *user_values, bool *user_isnull,
|
||||
const Datum *user_values, const bool *user_isnull,
|
||||
Datum *index_values, bool *index_isnull)
|
||||
{
|
||||
uint32 hashkey;
|
||||
|
||||
@@ -561,8 +561,8 @@ toast_flatten_tuple_to_datum(HeapTupleHeader tup,
|
||||
*/
|
||||
HeapTuple
|
||||
toast_build_flattened_tuple(TupleDesc tupleDesc,
|
||||
Datum *values,
|
||||
bool *isnull)
|
||||
const Datum *values,
|
||||
const bool *isnull)
|
||||
{
|
||||
HeapTuple new_tuple;
|
||||
int numAttrs = tupleDesc->natts;
|
||||
|
||||
@@ -67,7 +67,7 @@ static int _bt_num_array_keys(IndexScanDesc scan, Oid *skip_eq_ops_out,
|
||||
int *numSkipArrayKeys_out);
|
||||
static Datum _bt_find_extreme_element(IndexScanDesc scan, ScanKey skey,
|
||||
Oid elemtype, StrategyNumber strat,
|
||||
Datum *elems, int nelems);
|
||||
const Datum *elems, int nelems);
|
||||
static void _bt_setup_array_cmp(IndexScanDesc scan, ScanKey skey, Oid elemtype,
|
||||
FmgrInfo *orderproc, FmgrInfo **sortprocp);
|
||||
static int _bt_sort_array_elements(ScanKey skey, FmgrInfo *sortproc,
|
||||
@@ -2569,7 +2569,7 @@ _bt_num_array_keys(IndexScanDesc scan, Oid *skip_eq_ops_out,
|
||||
static Datum
|
||||
_bt_find_extreme_element(IndexScanDesc scan, ScanKey skey, Oid elemtype,
|
||||
StrategyNumber strat,
|
||||
Datum *elems, int nelems)
|
||||
const Datum *elems, int nelems)
|
||||
{
|
||||
Relation rel = scan->indexRelation;
|
||||
Oid cmp_op;
|
||||
|
||||
@@ -258,7 +258,7 @@ static double _bt_spools_heapscan(Relation heap, Relation index,
|
||||
BTBuildState *buildstate, IndexInfo *indexInfo);
|
||||
static void _bt_spooldestroy(BTSpool *btspool);
|
||||
static void _bt_spool(BTSpool *btspool, const ItemPointerData *self,
|
||||
Datum *values, bool *isnull);
|
||||
const Datum *values, const bool *isnull);
|
||||
static void _bt_leafbuild(BTSpool *btspool, BTSpool *btspool2);
|
||||
static void _bt_build_callback(Relation index, ItemPointer tid, Datum *values,
|
||||
bool *isnull, bool tupleIsAlive, void *state);
|
||||
@@ -525,7 +525,7 @@ _bt_spooldestroy(BTSpool *btspool)
|
||||
* spool an index entry into the sort file.
|
||||
*/
|
||||
static void
|
||||
_bt_spool(BTSpool *btspool, const ItemPointerData *self, Datum *values, bool *isnull)
|
||||
_bt_spool(BTSpool *btspool, const ItemPointerData *self, const Datum *values, const bool *isnull)
|
||||
{
|
||||
tuplesort_putindextuplevalues(btspool->sortstate, btspool->index,
|
||||
self, values, isnull);
|
||||
|
||||
@@ -1908,7 +1908,7 @@ spgSplitNodeAction(Relation index, SpGistState *state,
|
||||
*/
|
||||
bool
|
||||
spgdoinsert(Relation index, SpGistState *state,
|
||||
const ItemPointerData *heapPtr, Datum *datums, bool *isnulls)
|
||||
const ItemPointerData *heapPtr, const Datum *datums, const bool *isnulls)
|
||||
{
|
||||
bool result = true;
|
||||
TupleDesc leafDescriptor = state->leafTupDesc;
|
||||
|
||||
@@ -155,7 +155,7 @@ commonPrefix(const char *a, const char *b, int lena, int lenb)
|
||||
* On success, *i gets the match location; on failure, it gets where to insert
|
||||
*/
|
||||
static bool
|
||||
searchChar(Datum *nodeLabels, int nNodes, int16 c, int *i)
|
||||
searchChar(const Datum *nodeLabels, int nNodes, int16 c, int *i)
|
||||
{
|
||||
int StopLow = 0,
|
||||
StopHigh = nNodes;
|
||||
|
||||
Reference in New Issue
Block a user