---
name: "SPI_cursor_open_with_paramlist"
section: "3"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SPI_cursor_open_with_paramlist"
---

# SPI\_cursor\_open\_with\_paramlist(3)

set up a cursor using parameters

## NAME

SPI\_cursor\_open\_with\_paramlist - set up a cursor using parameters

## SYNOPSIS

```
Portal SPI_cursor_open_with_paramlist(const char *name,
                                      SPIPlanPtr plan,
                                      ParamListInfo params,
                                      bool read_only)
```

## DESCRIPTION

**SPI\_cursor\_open\_with\_paramlist** sets up a cursor (internally, a portal) that will execute a statement prepared by **SPI\_prepare**. This function is equivalent to **SPI\_cursor\_open** except that information about the parameter values to be passed to the query is presented differently. The ParamListInfo representation can be convenient for passing down values that are already available in that format. It also supports use of dynamic parameter sets via hook functions specified in ParamListInfo.

The passed-in parameter data will be copied into the cursor's portal, so it can be freed while the cursor still exists.

## ARGUMENTS

const char \* *name*

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

SPIPlanPtr *plan*

prepared statement (returned by **SPI\_prepare**)

ParamListInfo *params*

data structure containing parameter types and values; NULL if none

bool *read\_only*

true for read-only execution

## RETURN VALUE

Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via **elog**.
