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

# SPI_is_cursor_plan

## Name

SPI_is_cursor_plan -- return `true` if a plan prepared by `SPI_prepare` can be used with `SPI_cursor_open`

## Synopsis

    bool SPI_is_cursor_plan(void * plan)

## Description

`SPI_is_cursor_plan` returns `true` if a plan prepared by `SPI_prepare` can be passed as an argument to `SPI_cursor_open`, or `false` if that is not the case. The criteria are that the `plan` represents one single command and that this command returns tuples to the caller; for example, `SELECT` is allowed unless it contains an `INTO` clause, and `UPDATE` is allowed only if it contains a `RETURNING` clause.

## Arguments

`void * `plan``

  execution plan (returned by `SPI_prepare`)

## Return Value

`true` or `false` to indicate if the `plan` can produce a cursor or not, or `SPI_ERROR_ARGUMENT` if the `plan` is `NULL`

Prev | Home | Next
SPI_getargtypeid | Up | SPI_execute_plan