SPI_is_cursor_plan
SPI_is_cursor_plan
SPI_is_cursor_plan - return
true
if a statement
prepared by
SPI_prepare
can be used with
SPI_cursor_open
Synopsis
bool SPI_is_cursor_plan(SPIPlanPtr plan
)
Description
SPI_is_cursor_plan
returns
true
if a statement 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
-
SPIPlanPtr
plan
-
prepared statement (returned by
SPI_prepare
)
Return Value
true
or
false
to indicate if the
plan
can produce a cursor or not, with
SPI_result
set to zero.
If it is not possible to determine the answer (for example,
if the
plan
is
NULL
or invalid,
or if called when not connected to SPI), then
SPI_result
is set to a suitable error code
and
false
is returned.