I am unable to reproduce this effect.
The script below (slightly adapted from yours) runs just fine repeatedly in the same session with expected results.
create or replace function plperl_bug1( ) returns text as $$ my $qry = 'select * from pg_user'; elog NOTICE, "Good Query is: $qry"; my $rv = spi_exec_query( $qry ); elog NOTICE, "status: $rv->{status} processed: $rv->{processed}"; return $qry; $$ language plperl;
select plperl_bug1();
create or replace function plperl_bug2( ) returns text as $$ my $qry = "select * from pg_userssssssssssssssss"; elog NOTICE, "Bad Query is: $qry"; my $rv = spi_exec_query( $qry ); elog NOTICE, "status: $rv->{status} processed: $rv->{processed}"; return $qry; $$ language plperl;
select plperl_bug2();
cheers
andrew
elein wrote:
--
-- An SQL error causes subsequent function creation of an otherwise
-- healthy function to fail WHEN RUN with:
-- ERROR: creation of function failed:
-- (in cleanup) Undefined subroutine &PLPerl::mksafefunc called at (eval 4) line 4.
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html