Supported Versions: Current (11) / 10 / 9.6 / 9.5 / 9.4
Development Versions: 12 / devel
Unsupported versions: 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4



SPI_execp -- executes a plan prepared by SPI_prepare


int SPI_execp(void * plan, Datum * values, const char * nulls, int count)


SPI_execp executes a plan prepared by SPI_prepare. tcount has the same interpretation as in SPI_exec.


void * plan

execution plan (returned by SPI_prepare)

Datum *values

actual parameter values

const char * nulls

An array describing which parameters are null. 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_execp assumes that no parameters are null.

int count

number of row for which plan is to be executed

Return Value

The return value is the same as for SPI_exec or one of the following:


if plan is NULL or count is less than 0


if values is NULL and plan was prepared with some parameters

SPI_processed and SPI_tuptable are set as in SPI_exec if successful.


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