SPI_EXECUTE_PLAN(3)

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

πŸ’… SPI_EXECUTE_PLAN(3)

okay so bestie, this is the PostgreSQL 15.19 Documentation page for SPI_execute_plan, and it’s giving prepared-statement execution realness ✨ no cap, this one is literally about running a statement that SPI_prepare already set up. 🫢


🌸 NAME 🌸

SPI_execute_plan β€” execute a statement prepared by SPI_prepare πŸ’…

πŸ¦‹ 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. iconic behavior tbh πŸŽ€

read_only and count have the same interpretation as in SPI_execute. periodt ✨

πŸŽ€ ARGUMENTS πŸŽ€

  • SPIPlanPtr plan β€” prepared statement (returned by SPI_prepare) 🧚
  • Datum * values β€” an array of actual parameter values. Must have same length as the statement’s number of arguments. bestie, do not skip the matching-length vibe check πŸ’€
  • const char * nulls β€” an array describing which parameters are null. Must have 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. iykyk, it’s an array not a whole string situation 😌

  • 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. slay ✨


xoxo, your PostgreSQL 15.19 docs bestie πŸ’– β€” page dated 2026, mwah πŸŽ€

πŸ“¦ where this page comes from