Text Size: Normal / Large

SPI_connect

Name

SPI_connect -- connect a procedure to the SPI manager

Synopsis

int SPI_connect(void)

Description

SPI_connect opens a connection from a procedure invocation to the SPI manager. You must call this function if you want to execute commands through SPI. Some utility SPI functions may be called from unconnected procedures.

If your procedure is already connected, SPI_connect will return the error code SPI_ERROR_CONNECT. This could happen if a procedure that has called SPI_connect directly calls another procedure that calls SPI_connect. While recursive calls to the SPI manager are permitted when an SQL command called through SPI invokes another function that uses SPI, directly nested calls to SPI_connect and SPI_finish are forbidden. (But see SPI_push and SPI_pop.)

Return Value

SPI_OK_CONNECT

on success

SPI_ERROR_CONNECT

on error


User Comments


Måns Karlberg <moncek AT hotmail.com>
30 Jul 2006 15:01:58

Apparently SPI_connect switches memory context (and switches back at SPI_finish). Do not call palloc while in this context if you want the data to be valid in the outer context.

Furthermore, if you call e.g. Float8GetDatum between SPI_connect and SPI_finish, the value represented by the Datum is subject to corruption after the call to SPI_finish. This is because Float8GetDatum pallocs space.

New comments cannot be added to old documentation versions.

Privacy Policy | Project hosted by our server sponsors. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group