Re: calling plpgsql from c - Mailing list pgsql-hackers

From Tom Lane
Subject Re: calling plpgsql from c
Date
Msg-id 22673.1069437440@sss.pgh.pa.us
Whole thread Raw
In response to calling plpgsql from c  (Max Jacob <Max.Jacob@ircam.fr>)
Responses Re: calling plpgsql from c  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
Max Jacob <Max.Jacob@ircam.fr> writes:
> I'm trying to call plpgsql functions from c functions directly through 
> the Oid, but i have a problem: it seems that the plpgsql interpreter 
> calls SPI_connect and fails even if the caller has already 
> spi-connected.

This is a safety check.  If you are connected to SPI, you need to call
SPI_push() and SPI_pop() around any operation that might involve
recursive use of SPI.  That helps delimit "your" calls versus "their"
calls versus "no man's land".

It does seem that this is quite undocumented though.  Jan?
        regards, tom lane


pgsql-hackers by date:

Previous
From: James Rogers
Date:
Subject: Re: Sponsoring enterprise features
Next
From: Carlos Guzmán Álvarez
Date:
Subject: Re: Transaction Rollback problen (3.0 Protocol)