SPI_cursor_open

Name

SPI_cursor_open -- Sets up a cursor using
a plan created with SPI_prepare

Synopsis

SPI_cursor_open(name,
plan,
values,
nulls)

Inputs

char *name

Name for portal, or NULL to let the system select a
name

void *plan

Execution plan

Datum *values

Actual parameter values

char *nulls

Array describing which parameters are NULLs

n indicates NULL
(values[] entry ignored)

space indicates not NULL (values[] entry is
valid)

Outputs

Portal

Pointer to Portal containing cursor, or NULL on
error

Description

SPI_cursor_open sets up a cursor
(internally, a Portal) that will execute a plan prepared by
SPI_prepare.

Using a cursor instead of executing the plan directly has two
benefits. First, the result rows can be retrieved a few at a
time, avoiding memory overrun for queries that return many rows.
Second, a Portal can outlive the current procedure (it can, in
fact, live to the end of the current transaction). Returning the
portal name to the procedure's caller provides a way of returning
a rowset result.

Usage

If nulls is NULL then
SPI_cursor_open assumes that all
parameters (if any) are NOT NULL.

Submit correction

If you see anything in the documentation that is not correct, does not match
your experience with the particular feature or requires further clarification,
please use
this form
to report a documentation issue.