September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

SPI_execute_plan

Name

SPI_execute_plan -- execute a plan prepared by SPI_prepare

Synopsis

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

Description

SPI_execute_plan executes a plan prepared by SPI_prepare. read_only and count have the same interpretation as in SPI_execute.

Arguments

void * plan

execution plan (returned by SPI_prepare)

Datum * values

An array of actual parameter values. Must have same length as the plan's number of arguments.

const char * nulls

An array describing which parameters are null. Must have same length as the plan's number of arguments. n indicates a null value (entry in values will be ignored); a space indicates a nonnull value (entry in values is valid).

If nulls is NULL then SPI_execute_plan assumes that no parameters are null.

bool read_only

true for read-only execution

long count

maximum number of rows to process or return

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 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.

Notes

If one of the objects (a table, function, etc.) referenced by the prepared plan is dropped during the session then the result of SPI_execute_plan for this plan will be unpredictable.