SPI_ERROR_CONNECT in plperl function - Mailing list pgsql-general

From Christian Schröder
Subject SPI_ERROR_CONNECT in plperl function
Date
Msg-id 49611993.9050605@deriva.de
Whole thread Raw
Responses Re: SPI_ERROR_CONNECT in plperl function
List pgsql-general
Hi list,
I have found the following problem: I have declared a domain datatype
with a check constraint. The check constraint uses a plpgsql function:

CREATE FUNCTION domain_ok(value integer) RETURNS boolean AS $$
BEGIN
    RETURN value > 0;
END;
$$ LANGUAGE plpgsql;

CREATE DOMAIN testdomain integer CHECK (domain_ok(value));

I then wrote a plperl function that returns a set of this domain type:

CREATE FUNCTION testfunc() RETURNS SETOF testdomain AS $$
return_next(42);
return undef;
$$ LANGUAGE plperl;

When I try to call the function I get the following error message:

test=# select * from testfunc();
ERROR:  error from Perl function: SPI_connect failed: SPI_ERROR_CONNECT
at line 2.

The problem goes away if I declare the testfunc to return an integer.
Even a domain with a "normal" check constraint (i.e. without one that
calls another function) does not cause this error.

Is this a known bug? Or do I miss something?

Regards,
    Christian

--
Deriva GmbH                         Tel.: +49 551 489500-42
Financial IT and Consulting         Fax:  +49 551 489500-91
Hans-Böckler-Straße 2                  http://www.deriva.de
D-37079 Göttingen

Deriva CA Certificate: http://www.deriva.de/deriva-ca.cer


pgsql-general by date:

Previous
From: Martin Gainty
Date:
Subject: Re: What determines the cost of an index scan?
Next
From: Gregory Stark
Date:
Subject: Re: What determines the cost of an index scan?