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.