SPI_EXECUTE_PLAN(3)

πŸ“¦ version 13.23, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay bestie, this is the SPI_EXECUTE_PLAN(3) page β€” and it's all about SPI_execute_plan, which executes a statement prepared by SPI_prepare. slay. ✨

✨ SYNOPSIS ✨

int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                     bool read_only, long count)

πŸ¦‹ DESCRIPTION πŸ¦‹

SPI_execute_plan executes a statement prepared by SPI_prepare or one of its siblings. no cap, that's the whole vibe. πŸ’…

read_only and count have the same interpretation as in SPI_execute.

πŸŽ€ ARGUMENTS πŸŽ€

  • SPIPlanPtr plan β€” the prepared statement (returned by SPI_prepare) 🫢
  • Datum * values β€” an array of actual parameter values. It must have the same length as the statement's number of arguments. literally must match, bestie.
  • const char * nulls β€” an array describing which parameters are null. It must have the same length as the statement's number of arguments.

If nulls is NULL, then SPI_execute_plan assumes that no parameters are null. Otherwise, each entry of the nulls array should be ' ' if the corresponding parameter value is non-null, or 'n' if the corresponding parameter value is null. (In the latter case, the actual value in the corresponding values entry doesn't matter.)

Note that nulls is not a text string, just an array: it does not need a '\0' terminator. cute but important. πŸŽ€

  • bool read_only β€” true for read-only execution 🌸
  • long count β€” maximum number of rows to return, or 0 for no limit ⭐

🌈 RETURN VALUE 🌈

The return value is the same as for SPI_execute, with the following additional possible error (negative) results:

  • SPI_ERROR_ARGUMENT β€” if plan is NULL or invalid, or count is less than 0
  • SPI_ERROR_PARAM β€” if values is NULL and plan was prepared with some parameters

SPI_processed and SPI_tuptable are set as in SPI_execute if successful.


kisses from the PostgreSQL 13.23 docs, dated 2025 β€” mwah πŸ’‹πŸ’–

πŸ“¦ where this page comes from