SPI_connect() failure. wrote:
> SPI_connect() throws "ERROR:  SPI_connect failed" message (from
> backend/utils/adt/ri_trigger.c:378) when called  from (at least) a before
> insert trigger on a table which also contains a foreign key constraint.  The
> exit from  the trigger function is inconsistent.  This error message is
> emitted from ri_trigger.c but the return result 
> from SPI_connect() in the trigger is SPI_OK_CONNECT.  The insert operation
> does not commit to the database.
Do you call SPI_finish() in your trigger?  You should not leave the
SPI connection open.
-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.