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.
>
>