PostgreSQL 8.2.3 Documentation
Prev | Fast Backward |  | Fast Forward | Next

# SPI_saveplan

## Name

SPI_saveplan -- save a plan

## Synopsis

    void * SPI_saveplan(void * plan)

## Description

`SPI_saveplan` saves a passed plan (prepared by `SPI_prepare`) in memory protected from freeing by `SPI_finish` and by the transaction manager and returns a pointer to the saved plan. This gives you the ability to reuse prepared plans in the subsequent invocations of your procedure in the current session.

## Arguments

`void * `plan``

  the plan to be saved

## Return Value

Pointer to the saved plan; `NULL` if unsuccessful. On error, `SPI_result` is set thus:

`SPI_ERROR_ARGUMENT`

  if `plan` is `NULL`

`SPI_ERROR_UNCONNECTED`

  if called from an unconnected procedure

## Notes

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

Prev | Home | Next
SPI_cursor_close | Up | Interface Support Functions