]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fixes for SPI "const Datum *" use
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 30 Jun 2026 12:03:10 +0000 (14:03 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 30 Jun 2026 12:46:15 +0000 (14:46 +0200)
Fixup for commit 8a27d418f8f, which converted many functions to use
"const Datum *" instead of "Datum *", including some SPI functions.

For SPI_cursor_open(), the code was updated but not the documentation.
For SPI_cursor_open_with_args(), the documentation was updated but not
the code.  (Possibly, these two were confused with each other.)  Also,
SPI_execp() and SPI_modifytuple() were not updated, even though they
are closely related to the functions touched by the previous commit
and now look inconsistent.  Fix all these.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/86b5162f-c472-40fa-997b-0450dece1dec%40eisentraut.org

doc/src/sgml/spi.sgml
src/backend/executor/spi.c
src/include/executor/spi.h

index e30d0962ae761d04650bf62b439f7893047a8f0f..179cceb8da947b550ce33eecdfbf38ce0aad2e6d 100644 (file)
@@ -2086,7 +2086,7 @@ int SPI_execute_plan_with_paramlist(SPIPlanPtr <parameter>plan</parameter>,
 
  <refsynopsisdiv>
 <synopsis>
-int SPI_execp(SPIPlanPtr <parameter>plan</parameter>, Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>, long <parameter>count</parameter>)
+int SPI_execp(SPIPlanPtr <parameter>plan</parameter>, const Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>, long <parameter>count</parameter>)
 </synopsis>
  </refsynopsisdiv>
 
@@ -2191,7 +2191,7 @@ int SPI_execp(SPIPlanPtr <parameter>plan</parameter>, Datum * <parameter>values<
  <refsynopsisdiv>
 <synopsis>
 Portal SPI_cursor_open(const char * <parameter>name</parameter>, SPIPlanPtr <parameter>plan</parameter>,
-                       Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>,
+                       const Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>,
                        bool <parameter>read_only</parameter>)
 </synopsis>
  </refsynopsisdiv>
@@ -4694,7 +4694,7 @@ HeapTupleHeader SPI_returntuple(HeapTuple <parameter>row</parameter>, TupleDesc
  <refsynopsisdiv>
 <synopsis>
 HeapTuple SPI_modifytuple(Relation <parameter>rel</parameter>, HeapTuple <parameter>row</parameter>, int <parameter>ncols</parameter>,
-                          int * <parameter>colnum</parameter>, Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>)
+                          int * <parameter>colnum</parameter>, const Datum * <parameter>values</parameter>, const char * <parameter>nulls</parameter>)
 </synopsis>
  </refsynopsisdiv>
 
index 52f3b11301c559d3c9b18be45c9ba708db877df9..4e52542a3d17f825897d9abdfd41bbd536457524 100644 (file)
@@ -702,7 +702,7 @@ SPI_execute_plan(SPIPlanPtr plan, const Datum *Values, const char *Nulls,
 
 /* Obsolete version of SPI_execute_plan */
 int
-SPI_execp(SPIPlanPtr plan, Datum *Values, const char *Nulls, long tcount)
+SPI_execp(SPIPlanPtr plan, const Datum *Values, const char *Nulls, long tcount)
 {
        return SPI_execute_plan(plan, Values, Nulls, false, tcount);
 }
@@ -1105,7 +1105,7 @@ SPI_returntuple(HeapTuple tuple, TupleDesc tupdesc)
 
 HeapTuple
 SPI_modifytuple(Relation rel, HeapTuple tuple, int natts, int *attnum,
-                               Datum *Values, const char *Nulls)
+                               const Datum *Values, const char *Nulls)
 {
        MemoryContext oldcxt;
        HeapTuple       mtuple;
@@ -1473,7 +1473,7 @@ Portal
 SPI_cursor_open_with_args(const char *name,
                                                  const char *src,
                                                  int nargs, Oid *argtypes,
-                                                 Datum *Values, const char *Nulls,
+                                                 const Datum *Values, const char *Nulls,
                                                  bool read_only, int cursorOptions)
 {
        Portal          result;
index f4985cb715d9fb5163417df0f8dd4a9af2978d0b..fd79f86a98c239e901326b1e510d76c399b7299d 100644 (file)
@@ -119,7 +119,7 @@ extern int  SPI_execute_plan_with_paramlist(SPIPlanPtr plan,
                                                                                        ParamListInfo params,
                                                                                        bool read_only, long tcount);
 extern int     SPI_exec(const char *src, long tcount);
-extern int     SPI_execp(SPIPlanPtr plan, Datum *Values, const char *Nulls,
+extern int     SPI_execp(SPIPlanPtr plan, const Datum *Values, const char *Nulls,
                                          long tcount);
 extern int     SPI_execute_snapshot(SPIPlanPtr plan,
                                                                 const Datum *Values, const char *Nulls,
@@ -155,7 +155,7 @@ extern CachedPlan *SPI_plan_get_cached_plan(SPIPlanPtr plan);
 extern HeapTuple SPI_copytuple(HeapTuple tuple);
 extern HeapTupleHeader SPI_returntuple(HeapTuple tuple, TupleDesc tupdesc);
 extern HeapTuple SPI_modifytuple(Relation rel, HeapTuple tuple, int natts,
-                                                                int *attnum, Datum *Values, const char *Nulls);
+                                                                int *attnum, const Datum *Values, const char *Nulls);
 extern int     SPI_fnumber(TupleDesc tupdesc, const char *fname);
 extern char *SPI_fname(TupleDesc tupdesc, int fnumber);
 extern char *SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber);
@@ -176,7 +176,7 @@ extern Portal SPI_cursor_open(const char *name, SPIPlanPtr plan,
 extern Portal SPI_cursor_open_with_args(const char *name,
                                                                                const char *src,
                                                                                int nargs, Oid *argtypes,
-                                                                               Datum *Values, const char *Nulls,
+                                                                               const Datum *Values, const char *Nulls,
                                                                                bool read_only, int cursorOptions);
 extern Portal SPI_cursor_open_with_paramlist(const char *name, SPIPlanPtr plan,
                                                                                         ParamListInfo params, bool read_only);