Add const to values and nulls arguments
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 10 Oct 2023 05:50:15 +0000 (07:50 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 10 Oct 2023 05:50:43 +0000 (07:50 +0200)
This excludes any changes that would change the external AM APIs.

Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Discussion: https://www.postgresql.org/message-id/flat/14c31f4a-0347-0805-dce8-93a9072c05a5%40eisentraut.org

28 files changed:
src/backend/access/brin/brin.c
src/backend/access/common/heaptuple.c
src/backend/access/common/indextuple.c
src/backend/access/gist/gistutil.c
src/backend/access/hash/hashsort.c
src/backend/access/index/genam.c
src/backend/access/spgist/spgutils.c
src/backend/access/table/toast_helper.c
src/backend/executor/execIndexing.c
src/backend/executor/execTuples.c
src/backend/partitioning/partbounds.c
src/backend/utils/adt/json.c
src/backend/utils/adt/jsonb.c
src/backend/utils/sort/tuplesortvariants.c
src/backend/utils/sort/tuplestore.c
src/include/access/genam.h
src/include/access/gist_private.h
src/include/access/hash.h
src/include/access/htup_details.h
src/include/access/itup.h
src/include/access/spgist_private.h
src/include/access/toast_helper.h
src/include/executor/executor.h
src/include/partitioning/partbounds.h
src/include/utils/json.h
src/include/utils/jsonb.h
src/include/utils/tuplesort.h
src/include/utils/tuplestore.h

index a7538f32c2ee686bc744eb2f5a7ff78e8286aad0..af392bc032bc8506d5658c284d9087ce924ccce2 100644 (file)
@@ -80,7 +80,7 @@ static void union_tuples(BrinDesc *bdesc, BrinMemTuple *a,
                         BrinTuple *b);
 static void brin_vacuum_scan(Relation idxrel, BufferAccessStrategy strategy);
 static bool add_values_to_range(Relation idxRel, BrinDesc *bdesc,
-                               BrinMemTuple *dtup, Datum *values, bool *nulls);
+                               BrinMemTuple *dtup, const Datum *values, const bool *nulls);
 static bool check_null_keys(BrinValues *bval, ScanKey *nullkeys, int nnullkeys);
 
 /*
@@ -1774,7 +1774,7 @@ brin_vacuum_scan(Relation idxrel, BufferAccessStrategy strategy)
 
 static bool
 add_values_to_range(Relation idxRel, BrinDesc *bdesc, BrinMemTuple *dtup,
-                   Datum *values, bool *nulls)
+                   const Datum *values, const bool *nulls)
 {
    int         keyno;
 
index ef246c901e7171f7cfac80479cdb0e7a7befb8ad..d6a4ddfd51fb4c6bb7d50f8cfaaa33976f61d5af 100644 (file)
@@ -205,8 +205,8 @@ getmissingattr(TupleDesc tupleDesc,
  */
 Size
 heap_compute_data_size(TupleDesc tupleDesc,
-                      Datum *values,
-                      bool *isnull)
+                      const Datum *values,
+                      const bool *isnull)
 {
    Size        data_length = 0;
    int         i;
@@ -390,7 +390,7 @@ fill_val(Form_pg_attribute att,
  */
 void
 heap_fill_tuple(TupleDesc tupleDesc,
-               Datum *values, bool *isnull,
+               const Datum *values, const bool *isnull,
                char *data, Size data_size,
                uint16 *infomask, bits8 *bit)
 {
@@ -1106,8 +1106,8 @@ heap_copy_tuple_as_datum(HeapTuple tuple, TupleDesc tupleDesc)
  */
 HeapTuple
 heap_form_tuple(TupleDesc tupleDescriptor,
-               Datum *values,
-               bool *isnull)
+               const Datum *values,
+               const bool *isnull)
 {
    HeapTuple   tuple;          /* return tuple */
    HeapTupleHeader td;         /* tuple data */
@@ -1200,9 +1200,9 @@ heap_form_tuple(TupleDesc tupleDescriptor,
 HeapTuple
 heap_modify_tuple(HeapTuple tuple,
                  TupleDesc tupleDesc,
-                 Datum *replValues,
-                 bool *replIsnull,
-                 bool *doReplace)
+                 const Datum *replValues,
+                 const bool *replIsnull,
+                 const bool *doReplace)
 {
    int         numberOfAttributes = tupleDesc->natts;
    int         attoff;
@@ -1269,9 +1269,9 @@ HeapTuple
 heap_modify_tuple_by_cols(HeapTuple tuple,
                          TupleDesc tupleDesc,
                          int nCols,
-                         int *replCols,
-                         Datum *replValues,
-                         bool *replIsnull)
+                         const int *replCols,
+                         const Datum *replValues,
+                         const bool *replIsnull)
 {
    int         numberOfAttributes = tupleDesc->natts;
    Datum      *values;
@@ -1442,8 +1442,8 @@ heap_freetuple(HeapTuple htup)
  */
 MinimalTuple
 heap_form_minimal_tuple(TupleDesc tupleDescriptor,
-                       Datum *values,
-                       bool *isnull)
+                       const Datum *values,
+                       const bool *isnull)
 {
    MinimalTuple tuple;         /* return tuple */
    Size        len,
index 8b178f94c172b1c88523c7ecb0a7d48d04e3cbb3..9e9f87b134efb14d77d4628ce2fa443dbdf94205 100644 (file)
@@ -42,8 +42,8 @@
   */
 IndexTuple
 index_form_tuple(TupleDesc tupleDescriptor,
-                Datum *values,
-                bool *isnull)
+                const Datum *values,
+                const bool *isnull)
 {
    return index_form_tuple_context(tupleDescriptor, values, isnull,
                                    CurrentMemoryContext);
@@ -63,8 +63,8 @@ index_form_tuple(TupleDesc tupleDescriptor,
  */
 IndexTuple
 index_form_tuple_context(TupleDesc tupleDescriptor,
-                        Datum *values,
-                        bool *isnull,
+                        const Datum *values,
+                        const bool *isnull,
                         MemoryContext context)
 {
    char       *tp;             /* tuple pointer */
@@ -79,8 +79,8 @@ index_form_tuple_context(TupleDesc tupleDescriptor,
    int         numberOfAttributes = tupleDescriptor->natts;
 
 #ifdef TOAST_INDEX_HACK
-   Datum       untoasted_values[INDEX_MAX_KEYS];
-   bool        untoasted_free[INDEX_MAX_KEYS];
+   Datum       untoasted_values[INDEX_MAX_KEYS] = {0};
+   bool        untoasted_free[INDEX_MAX_KEYS] = {0};
 #endif
 
    if (numberOfAttributes > INDEX_MAX_KEYS)
index b6bc8c2c56daeea08c1d39ea8aeed51c3508ba34..9ce3687dbf1a63ef505d205b4a4b65dfbffd71ff 100644 (file)
@@ -573,7 +573,7 @@ gistdentryinit(GISTSTATE *giststate, int nkey, GISTENTRY *e,
 
 IndexTuple
 gistFormTuple(GISTSTATE *giststate, Relation r,
-             Datum *attdata, bool *isnull, bool isleaf)
+             const Datum *attdata, const bool *isnull, bool isleaf)
 {
    Datum       compatt[INDEX_MAX_KEYS];
    IndexTuple  res;
@@ -594,7 +594,7 @@ gistFormTuple(GISTSTATE *giststate, Relation r,
 
 void
 gistCompressValues(GISTSTATE *giststate, Relation r,
-                  Datum *attdata, bool *isnull, bool isleaf, Datum *compatt)
+                  const Datum *attdata, const bool *isnull, bool isleaf, Datum *compatt)
 {
    int         i;
 
index b67b2207c05aaaf8d3b93846256f451cfcf9d1e2..e7c3ab10e404e73a9250e05d4e5bf1add03464b7 100644 (file)
@@ -106,7 +106,7 @@ _h_spooldestroy(HSpool *hspool)
  * spool an index entry into the sort file.
  */
 void
-_h_spool(HSpool *hspool, ItemPointer self, Datum *values, bool *isnull)
+_h_spool(HSpool *hspool, ItemPointer self, const Datum *values, const bool *isnull)
 {
    tuplesort_putindextuplevalues(hspool->sortstate, hspool->index,
                                  self, values, isnull);
index 722927aebabc394165d16841d7626ab1e94dbaca..4ca12006843934e34f44c91a7f337bfde04e8969 100644 (file)
@@ -175,7 +175,7 @@ IndexScanEnd(IndexScanDesc scan)
  */
 char *
 BuildIndexValueDescription(Relation indexRelation,
-                          Datum *values, bool *isnull)
+                          const Datum *values, const bool *isnull)
 {
    StringInfoData buf;
    Form_pg_index idxrec;
index 8f32e46fb8313ea00d34e60a323a3affbdd05f2d..c112e1e5dd4a7a4eb12d1a283e5001f799759273 100644 (file)
@@ -788,7 +788,7 @@ memcpyInnerDatum(void *target, SpGistTypeDesc *att, Datum datum)
  */
 Size
 SpGistGetLeafTupleSize(TupleDesc tupleDescriptor,
-                      Datum *datums, bool *isnulls)
+                      const Datum *datums, const bool *isnulls)
 {
    Size        size;
    Size        data_size;
@@ -841,7 +841,7 @@ SpGistGetLeafTupleSize(TupleDesc tupleDescriptor,
  */
 SpGistLeafTuple
 spgFormLeafTuple(SpGistState *state, ItemPointer heapPtr,
-                Datum *datums, bool *isnulls)
+                const Datum *datums, const bool *isnulls)
 {
    SpGistLeafTuple tup;
    TupleDesc   tupleDescriptor = state->leafTupDesc;
index b5cfeb21aab020abaa18dbd199a6fea49b331853..871ebeeb5632f2d386208de502f5fc2c4db3d293 100644 (file)
@@ -316,7 +316,7 @@ toast_tuple_cleanup(ToastTupleContext *ttc)
  * relation.
  */
 void
-toast_delete_external(Relation rel, Datum *values, bool *isnull,
+toast_delete_external(Relation rel, const Datum *values, const bool *isnull,
                      bool is_speculative)
 {
    TupleDesc   tupleDesc = rel->rd_att;
index 1d82b64b89784c38802fa2036d7380693800eb8e..3c6730632de7ca75cc5aa69abb1a1d4b51b0b61c 100644 (file)
@@ -127,15 +127,15 @@ typedef enum
 static bool check_exclusion_or_unique_constraint(Relation heap, Relation index,
                                                 IndexInfo *indexInfo,
                                                 ItemPointer tupleid,
-                                                Datum *values, bool *isnull,
+                                                const Datum *values, const bool *isnull,
                                                 EState *estate, bool newIndex,
                                                 CEOUC_WAIT_MODE waitMode,
                                                 bool violationOK,
                                                 ItemPointer conflictTid);
 
-static bool index_recheck_constraint(Relation index, Oid *constr_procs,
-                                    Datum *existing_values, bool *existing_isnull,
-                                    Datum *new_values);
+static bool index_recheck_constraint(Relation index, const Oid *constr_procs,
+                                    const Datum *existing_values, const bool *existing_isnull,
+                                    const Datum *new_values);
 static bool index_unchanged_by_update(ResultRelInfo *resultRelInfo,
                                      EState *estate, IndexInfo *indexInfo,
                                      Relation indexRelation);
@@ -684,7 +684,7 @@ static bool
 check_exclusion_or_unique_constraint(Relation heap, Relation index,
                                     IndexInfo *indexInfo,
                                     ItemPointer tupleid,
-                                    Datum *values, bool *isnull,
+                                    const Datum *values, const bool *isnull,
                                     EState *estate, bool newIndex,
                                     CEOUC_WAIT_MODE waitMode,
                                     bool violationOK,
@@ -910,7 +910,7 @@ void
 check_exclusion_constraint(Relation heap, Relation index,
                           IndexInfo *indexInfo,
                           ItemPointer tupleid,
-                          Datum *values, bool *isnull,
+                          const Datum *values, const bool *isnull,
                           EState *estate, bool newIndex)
 {
    (void) check_exclusion_or_unique_constraint(heap, index, indexInfo, tupleid,
@@ -924,9 +924,9 @@ check_exclusion_constraint(Relation heap, Relation index,
  * exclusion condition against the new_values.  Returns true if conflict.
  */
 static bool
-index_recheck_constraint(Relation index, Oid *constr_procs,
-                        Datum *existing_values, bool *existing_isnull,
-                        Datum *new_values)
+index_recheck_constraint(Relation index, const Oid *constr_procs,
+                        const Datum *existing_values, const bool *existing_isnull,
+                        const Datum *new_values)
 {
    int         indnkeyatts = IndexRelationGetNumberOfKeyAttributes(index);
    int         i;
index fda20ec3183eb019c7004cfd73d3513a3c1dc3f8..2c2712ceac365836f35e553e2ae08309c637cc4c 100644 (file)
@@ -2273,7 +2273,7 @@ begin_tup_output_tupdesc(DestReceiver *dest,
  * write a single tuple
  */
 void
-do_tup_output(TupOutputState *tstate, Datum *values, bool *isnull)
+do_tup_output(TupOutputState *tstate, const Datum *values, const bool *isnull)
 {
    TupleTableSlot *slot = tstate->slot;
    int         natts = slot->tts_tupleDescriptor->natts;
index 5436cc302d1bae83b12604696d0f57fee9e8d9cd..9f207b44c37fc0f0e144a5b985e6917a2ada4d5c 100644 (file)
@@ -4720,8 +4720,8 @@ get_range_nulltest(PartitionKey key)
  * Compute the hash value for given partition key values.
  */
 uint64
-compute_partition_hash_value(int partnatts, FmgrInfo *partsupfunc, Oid *partcollation,
-                            Datum *values, bool *isnull)
+compute_partition_hash_value(int partnatts, FmgrInfo *partsupfunc, const Oid *partcollation,
+                            const Datum *values, const bool *isnull)
 {
    int         i;
    uint64      rowHash = 0;
index 55413c0fdf2bf1749e2025324c1eee4092c8b9f0..71ae53ff975ef929a2e946b77f3eeabd45004fd3 100644 (file)
@@ -1182,7 +1182,7 @@ catenate_stringinfo_string(StringInfo buffer, const char *addon)
 }
 
 Datum
-json_build_object_worker(int nargs, Datum *args, bool *nulls, Oid *types,
+json_build_object_worker(int nargs, const Datum *args, const bool *nulls, const Oid *types,
                         bool absent_on_null, bool unique_keys)
 {
    int         i;
@@ -1295,7 +1295,7 @@ json_build_object_noargs(PG_FUNCTION_ARGS)
 }
 
 Datum
-json_build_array_worker(int nargs, Datum *args, bool *nulls, Oid *types,
+json_build_array_worker(int nargs, const Datum *args, const bool *nulls, const Oid *types,
                        bool absent_on_null)
 {
    int         i;
index b10a60ac66558c6c217db1f0ffc45816b2143b0e..6f445f5c2bc30eab596b13e4ad924c4cd438822b 100644 (file)
@@ -58,7 +58,7 @@ static void jsonb_put_escaped_value(StringInfo out, JsonbValue *scalarVal);
 static JsonParseErrorType jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype);
 static void composite_to_jsonb(Datum composite, JsonbInState *result);
 static void array_dim_to_jsonb(JsonbInState *result, int dim, int ndims, int *dims,
-                              Datum *vals, bool *nulls, int *valcount,
+                              const Datum *vals, const bool *nulls, int *valcount,
                               JsonTypeCategory tcategory, Oid outfuncoid);
 static void array_to_jsonb_internal(Datum array, JsonbInState *result);
 static void datum_to_jsonb_internal(Datum val, bool is_null, JsonbInState *result,
@@ -864,8 +864,8 @@ datum_to_jsonb_internal(Datum val, bool is_null, JsonbInState *result,
  * ourselves recursively to process the next dimension.
  */
 static void
-array_dim_to_jsonb(JsonbInState *result, int dim, int ndims, int *dims, Datum *vals,
-                  bool *nulls, int *valcount, JsonTypeCategory tcategory,
+array_dim_to_jsonb(JsonbInState *result, int dim, int ndims, int *dims, const Datum *vals,
+                  const bool *nulls, int *valcount, JsonTypeCategory tcategory,
                   Oid outfuncoid)
 {
    int         i;
@@ -1127,7 +1127,7 @@ datum_to_jsonb(Datum val, JsonTypeCategory tcategory, Oid outfuncoid)
 }
 
 Datum
-jsonb_build_object_worker(int nargs, Datum *args, bool *nulls, Oid *types,
+jsonb_build_object_worker(int nargs, const Datum *args, const bool *nulls, const Oid *types,
                          bool absent_on_null, bool unique_keys)
 {
    int         i;
@@ -1212,7 +1212,7 @@ jsonb_build_object_noargs(PG_FUNCTION_ARGS)
 }
 
 Datum
-jsonb_build_array_worker(int nargs, Datum *args, bool *nulls, Oid *types,
+jsonb_build_array_worker(int nargs, const Datum *args, const bool *nulls, const Oid *types,
                         bool absent_on_null)
 {
    int         i;
index 84442a93c5a5ea0ad42c02146c08f5fbf2921427..2cd508e51309d2e982439da7ca0dc1e8019a6b97 100644 (file)
@@ -683,8 +683,8 @@ tuplesort_putheaptuple(Tuplesortstate *state, HeapTuple tup)
  */
 void
 tuplesort_putindextuplevalues(Tuplesortstate *state, Relation rel,
-                             ItemPointer self, Datum *values,
-                             bool *isnull)
+                             ItemPointer self, const Datum *values,
+                             const bool *isnull)
 {
    SortTuple   stup;
    IndexTuple  tuple;
index f60633df241b00cb52048c7255f47b042e5d1fbc..38bbed46049da6ed9d7e33403c2486965ada93d8 100644 (file)
@@ -748,7 +748,7 @@ tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple)
  */
 void
 tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc,
-                    Datum *values, bool *isnull)
+                    const Datum *values, const bool *isnull)
 {
    MinimalTuple tuple;
    MemoryContext oldcxt = MemoryContextSwitchTo(state->context);
index a30879566549a1894ea01067cc813ef3fcf0121f..4e626c615e7ad54f112ffefe0c94da2aed4f4ba0 100644 (file)
@@ -204,7 +204,7 @@ extern IndexScanDesc RelationGetIndexScan(Relation indexRelation,
                                          int nkeys, int norderbys);
 extern void IndexScanEnd(IndexScanDesc scan);
 extern char *BuildIndexValueDescription(Relation indexRelation,
-                                       Datum *values, bool *isnull);
+                                       const Datum *values, const bool *isnull);
 extern TransactionId index_compute_xid_horizon_for_tuples(Relation irel,
                                                          Relation hrel,
                                                          Buffer ibuf,
index 3edc740a3f34ab293e6c0e5d5103ee59fad6aa4b..18c37f0bd8962a236bf85aa3a8ac839c717a6a99 100644 (file)
@@ -502,9 +502,9 @@ extern IndexTuple gistgetadjusted(Relation r,
                                  IndexTuple addtup,
                                  GISTSTATE *giststate);
 extern IndexTuple gistFormTuple(GISTSTATE *giststate,
-                               Relation r, Datum *attdata, bool *isnull, bool isleaf);
+                               Relation r, const Datum *attdata, const bool *isnull, bool isleaf);
 extern void gistCompressValues(GISTSTATE *giststate, Relation r,
-                              Datum *attdata, bool *isnull, bool isleaf, Datum *compatt);
+                              const Datum *attdata, const bool *isnull, bool isleaf, Datum *compatt);
 
 extern OffsetNumber gistchoose(Relation r, Page p,
                               IndexTuple it,
index 9e035270a16c98a0977fefbe2d337c0d7d8e8cf3..4806ce6c4eabcd456c492576370833d7a8c20e10 100644 (file)
@@ -451,7 +451,7 @@ typedef struct HSpool HSpool;   /* opaque struct in hashsort.c */
 extern HSpool *_h_spoolinit(Relation heap, Relation index, uint32 num_buckets);
 extern void _h_spooldestroy(HSpool *hspool);
 extern void _h_spool(HSpool *hspool, ItemPointer self,
-                    Datum *values, bool *isnull);
+                    const Datum *values, const bool *isnull);
 extern void _h_indexbuild(HSpool *hspool, Relation heapRel);
 
 /* hashutil.c */
index e01f4f35c8d3b002cc93dd50a7c1f63d69e12642..6fd87dc108d7becbd53bed3c9eb22a380284d016 100644 (file)
@@ -696,9 +696,9 @@ struct MinimalTupleData
 
 /* prototypes for functions in common/heaptuple.c */
 extern Size heap_compute_data_size(TupleDesc tupleDesc,
-                                  Datum *values, bool *isnull);
+                                  const Datum *values, const bool *isnull);
 extern void heap_fill_tuple(TupleDesc tupleDesc,
-                           Datum *values, bool *isnull,
+                           const Datum *values, const bool *isnull,
                            char *data, Size data_size,
                            uint16 *infomask, bits8 *bit);
 extern bool heap_attisnull(HeapTuple tup, int attnum, TupleDesc tupleDesc);
@@ -712,23 +712,23 @@ extern HeapTuple heap_copytuple(HeapTuple tuple);
 extern void heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest);
 extern Datum heap_copy_tuple_as_datum(HeapTuple tuple, TupleDesc tupleDesc);
 extern HeapTuple heap_form_tuple(TupleDesc tupleDescriptor,
-                                Datum *values, bool *isnull);
+                                const Datum *values, const bool *isnull);
 extern HeapTuple heap_modify_tuple(HeapTuple tuple,
                                   TupleDesc tupleDesc,
-                                  Datum *replValues,
-                                  bool *replIsnull,
-                                  bool *doReplace);
+                                  const Datum *replValues,
+                                  const bool *replIsnull,
+                                  const bool *doReplace);
 extern HeapTuple heap_modify_tuple_by_cols(HeapTuple tuple,
                                           TupleDesc tupleDesc,
                                           int nCols,
-                                          int *replCols,
-                                          Datum *replValues,
-                                          bool *replIsnull);
+                                          const int *replCols,
+                                          const Datum *replValues,
+                                          const bool *replIsnull);
 extern void heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc,
                              Datum *values, bool *isnull);
 extern void heap_freetuple(HeapTuple htup);
 extern MinimalTuple heap_form_minimal_tuple(TupleDesc tupleDescriptor,
-                                           Datum *values, bool *isnull);
+                                           const Datum *values, const bool *isnull);
 extern void heap_free_minimal_tuple(MinimalTuple mtup);
 extern MinimalTuple heap_copy_minimal_tuple(MinimalTuple mtup);
 extern HeapTuple heap_tuple_from_minimal_tuple(MinimalTuple mtup);
index 2e2b8c7a4704cadf883c75d74e050aafefe086ce..1d55536dbdf58640765cfd8bf80cce864ed4e554 100644 (file)
@@ -75,9 +75,9 @@ typedef IndexAttributeBitMapData * IndexAttributeBitMap;
 
 /* routines in indextuple.c */
 extern IndexTuple index_form_tuple(TupleDesc tupleDescriptor,
-                                  Datum *values, bool *isnull);
+                                  const Datum *values, const bool *isnull);
 extern IndexTuple index_form_tuple_context(TupleDesc tupleDescriptor,
-                                          Datum *values, bool *isnull,
+                                          const Datum *values, const bool *isnull,
                                           MemoryContext context);
 extern Datum nocache_index_getattr(IndexTuple tup, int attnum,
                                   TupleDesc tupleDesc);
index c6ef46fc2067ed75f6e2266cdc06ee6f4923a836..bc39ee45ccf17285ae1c22e1b7118e26fcb929be 100644 (file)
@@ -506,10 +506,10 @@ extern void SpGistInitBuffer(Buffer b, uint16 f);
 extern void SpGistInitMetapage(Page page);
 extern unsigned int SpGistGetInnerTypeSize(SpGistTypeDesc *att, Datum datum);
 extern Size SpGistGetLeafTupleSize(TupleDesc tupleDescriptor,
-                                  Datum *datums, bool *isnulls);
+                                  const Datum *datums, const bool *isnulls);
 extern SpGistLeafTuple spgFormLeafTuple(SpGistState *state,
                                        ItemPointer heapPtr,
-                                       Datum *datums, bool *isnulls);
+                                       const Datum *datums, const bool *isnulls);
 extern SpGistNodeTuple spgFormNodeTuple(SpGistState *state,
                                        Datum label, bool isnull);
 extern SpGistInnerTuple spgFormInnerTuple(SpGistState *state,
index e971bd2c8ef64f48e34731a85c06a27fbb8d1e05..51a228db4026755d4210c825a898797af348fdd3 100644 (file)
@@ -110,7 +110,7 @@ extern void toast_tuple_externalize(ToastTupleContext *ttc, int attribute,
                                    int options);
 extern void toast_tuple_cleanup(ToastTupleContext *ttc);
 
-extern void toast_delete_external(Relation rel, Datum *values, bool *isnull,
+extern void toast_delete_external(Relation rel, const Datum *values, const bool *isnull,
                                  bool is_speculative);
 
 #endif
index aeebe0e0ff98b828687c825102ae8059559e5407..e1eefb400b04b4cba9c0d880f7a52dd9480071e1 100644 (file)
@@ -509,7 +509,7 @@ typedef struct TupOutputState
 extern TupOutputState *begin_tup_output_tupdesc(DestReceiver *dest,
                                                TupleDesc tupdesc,
                                                const TupleTableSlotOps *tts_ops);
-extern void do_tup_output(TupOutputState *tstate, Datum *values, bool *isnull);
+extern void do_tup_output(TupOutputState *tstate, const Datum *values, const bool *isnull);
 extern void do_text_output_multiline(TupOutputState *tstate, const char *txt);
 extern void end_tup_output(TupOutputState *tstate);
 
@@ -639,7 +639,7 @@ extern bool ExecCheckIndexConstraints(ResultRelInfo *resultRelInfo,
 extern void check_exclusion_constraint(Relation heap, Relation index,
                                       IndexInfo *indexInfo,
                                       ItemPointer tupleid,
-                                      Datum *values, bool *isnull,
+                                      const Datum *values, const bool *isnull,
                                       EState *estate, bool newIndex);
 
 /*
index d2e01f92dfec117fcf1d598e0f3209e5f025e33d..53bcc867df76127e79214815b9fa3a91bc416cf3 100644 (file)
@@ -100,8 +100,8 @@ typedef struct PartitionBoundInfoData
 
 extern int get_hash_partition_greatest_modulus(PartitionBoundInfo bound);
 extern uint64 compute_partition_hash_value(int partnatts, FmgrInfo *partsupfunc,
-                                          Oid *partcollation,
-                                          Datum *values, bool *isnull);
+                                          const Oid *partcollation,
+                                          const Datum *values, const bool *isnull);
 extern List *get_qual_from_partbound(Relation parent,
                                     PartitionBoundSpec *spec);
 extern PartitionBoundInfo partition_bounds_create(PartitionBoundSpec **boundspecs,
index 35a9a5545d85ec8c805eb9a9d11400576ae24ff5..f07e82c83270a8ebd67046ae2bcbde35d8d28e32 100644 (file)
@@ -21,11 +21,11 @@ extern void escape_json(StringInfo buf, const char *str);
 extern char *JsonEncodeDateTime(char *buf, Datum value, Oid typid,
                                const int *tzp);
 extern bool to_json_is_immutable(Oid typoid);
-extern Datum json_build_object_worker(int nargs, Datum *args, bool *nulls,
-                                     Oid *types, bool absent_on_null,
+extern Datum json_build_object_worker(int nargs, const Datum *args, const bool *nulls,
+                                     const Oid *types, bool absent_on_null,
                                      bool unique_keys);
-extern Datum json_build_array_worker(int nargs, Datum *args, bool *nulls,
-                                    Oid *types, bool absent_on_null);
+extern Datum json_build_array_worker(int nargs, const Datum *args, const bool *nulls,
+                                    const Oid *types, bool absent_on_null);
 extern bool json_validate(text *json, bool check_unique_keys, bool throw_error);
 
 #endif                         /* JSON_H */
index 649a1644f24c2cf0f7dd894db5321408fc58f12a..e62a5f2f442127ff7788d105967b0dfc487918d7 100644 (file)
@@ -430,10 +430,10 @@ extern Datum jsonb_set_element(Jsonb *jb, Datum *path, int path_len,
 extern Datum jsonb_get_element(Jsonb *jb, Datum *path, int npath,
                               bool *isnull, bool as_text);
 extern bool to_jsonb_is_immutable(Oid typoid);
-extern Datum jsonb_build_object_worker(int nargs, Datum *args, bool *nulls,
-                                      Oid *types, bool absent_on_null,
+extern Datum jsonb_build_object_worker(int nargs, const Datum *args, const bool *nulls,
+                                      const Oid *types, bool absent_on_null,
                                       bool unique_keys);
-extern Datum jsonb_build_array_worker(int nargs, Datum *args, bool *nulls,
-                                     Oid *types, bool absent_on_null);
+extern Datum jsonb_build_array_worker(int nargs, const Datum *args, const bool *nulls,
+                                     const Oid *types, bool absent_on_null);
 
 #endif                         /* __JSONB_H__ */
index 3f71c70f175553d3ea3998e45ba0f6bc686e9b14..3a49a6d2d4db5afc08d4b464ae08c6670c7a3f38 100644 (file)
@@ -437,7 +437,7 @@ extern void tuplesort_puttupleslot(Tuplesortstate *state,
 extern void tuplesort_putheaptuple(Tuplesortstate *state, HeapTuple tup);
 extern void tuplesort_putindextuplevalues(Tuplesortstate *state,
                                          Relation rel, ItemPointer self,
-                                         Datum *values, bool *isnull);
+                                         const Datum *values, const bool *isnull);
 extern void tuplesort_putdatum(Tuplesortstate *state, Datum val,
                               bool isNull);
 
index 36424b80b1b9ef9fa43c40941a5fd84b8af77709..1077c5fdeaab503a9357a6f123a6ed9d8cb957a5 100644 (file)
@@ -54,7 +54,7 @@ extern void tuplestore_puttupleslot(Tuplestorestate *state,
                                    TupleTableSlot *slot);
 extern void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple);
 extern void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc,
-                                Datum *values, bool *isnull);
+                                const Datum *values, const bool *isnull);
 
 /* Backwards compatibility macro */
 #define tuplestore_donestoring(state)  ((void) 0)