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 row set as result.
Arguments
const char * name
name for portal, or NULL to let the system select a name
void * plan
execution plan (returned by SPI_prepare)
Datum * values
actual parameter values
const char *nulls
An array describing which parameters are null values. n indicates a null value (entry in values will be ignored); a space indicates a nonnull value (entry in values is valid). If nulls is NULL then SPI_cursor_open assumes that no parameters are null.
Return Value
pointer to portal containing the cursor, or NULL on error
Deliver First Class Web Sites: 101 Essential Checklists Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?