--
-- 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.
--
-- Workaround is to close and reopen the connection after an SQL failure
--
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, $rv->{status};
elog NOTICE, @{$rv->{rows}};
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, $rv->{status};
elog NOTICE, @{$rv->{rows}};
return $qry;
' language 'plperl';
select plperl_bug2();
--
-- same as above definition
--
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, $rv->{status};
elog NOTICE, @{$rv->{rows}};
return $qry;
' language 'plperl';
select plperl_bug1();