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.