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.