Home
About
Download
Documentation
Community
Developers
Support
Donate
Your account
November 13, 2025:
PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 Released!
Documentation
→
PostgreSQL 18
Supported Versions:
Current
(
18
) /
17
/
16
/
15
/
14
Development Versions:
devel
Unsupported versions:
13
/
12
/
11
/
10
/
9.6
/
9.5
/
9.4
/
9.3
/
9.2
/
9.1
/
9.0
/
8.4
/
8.3
/
8.2
/
8.1
/
8.0
/
7.4
/
7.3
/
7.2
/
7.1
Chapter 45. Server Programming Interface
Prev
Up
Part V. Server Programming
Home
Next
Chapter 45. Server Programming Interface
Table of Contents
45.1. Interface Functions
SPI_connect
— connect a C function to the SPI manager
SPI_finish
— disconnect a C function from the SPI manager
SPI_execute
— execute a command
SPI_exec
— execute a read/write command
SPI_execute_extended
— execute a command with out-of-line parameters
SPI_execute_with_args
— execute a command with out-of-line parameters
SPI_prepare
— prepare a statement, without executing it yet
SPI_prepare_cursor
— prepare a statement, without executing it yet
SPI_prepare_extended
— prepare a statement, without executing it yet
SPI_prepare_params
— prepare a statement, without executing it yet
SPI_getargcount
— return the number of arguments needed by a statement prepared by
SPI_prepare
SPI_getargtypeid
— return the data type OID for an argument of a statement prepared by
SPI_prepare
SPI_is_cursor_plan
— return
true
if a statement prepared by
SPI_prepare
can be used with
SPI_cursor_open
SPI_execute_plan
— execute a statement prepared by
SPI_prepare
SPI_execute_plan_extended
— execute a statement prepared by
SPI_prepare
SPI_execute_plan_with_paramlist
— execute a statement prepared by
SPI_prepare
SPI_execp
— execute a statement in read/write mode
SPI_cursor_open
— set up a cursor using a statement created with
SPI_prepare
SPI_cursor_open_with_args
— set up a cursor using a query and parameters
SPI_cursor_open_with_paramlist
— set up a cursor using parameters
SPI_cursor_parse_open
— set up a cursor using a query string and parameters
SPI_cursor_find
— find an existing cursor by name
SPI_cursor_fetch
— fetch some rows from a cursor
SPI_cursor_move
— move a cursor
SPI_scroll_cursor_fetch
— fetch some rows from a cursor
SPI_scroll_cursor_move
— move a cursor
SPI_cursor_close
— close a cursor
SPI_keepplan
— save a prepared statement
SPI_saveplan
— save a prepared statement
SPI_register_relation
— make an ephemeral named relation available by name in SPI queries
SPI_unregister_relation
— remove an ephemeral named relation from the registry
SPI_register_trigger_data
— make ephemeral trigger data available in SPI queries
45.2. Interface Support Functions
SPI_fname
— determine the column name for the specified column number
SPI_fnumber
— determine the column number for the specified column name
SPI_getvalue
— return the string value of the specified column
SPI_getbinval
— return the binary value of the specified column
SPI_gettype
— return the data type name of the specified column
SPI_gettypeid
— return the data type
OID
of the specified column
SPI_getrelname
— return the name of the specified relation
SPI_getnspname
— return the namespace of the specified relation
SPI_result_code_string
— return error code as string