On 01/10/2012 12:34 PM, Pavel Stehule wrote:
Actually, now I look closer I see that PLPerl passes back a stringified
status from SPI_execute(), so there is no great need for setting up these
constants. It's probably water under the bridge now, but maybe PLPython
should have done this too.
This is not documented well - I see nothing about result value in doc.
Does it raise exception when SPI returns some bad result value?
The docs state:
You can then access the command status (e.g., SPI_OK_INSERT) like this:
$res = $rv->{status};
And it works like this:
andrew=# do 'my $rv = spi_exec_query("select 1 as a");
elog(NOTICE,$rv->{status});' language plperl;
NOTICE: SPI_OK_SELECT
CONTEXT: PL/Perl anonymous code block
DO
andrew=#
An error causes the function to end, so it never sees the error status:
andrew=# do 'my $rv = spi_exec_query("select blurfl");
elog(NOTICE,$rv->{status});' language plperl;
ERROR: column "blurfl" does not exist at line 1.
CONTEXT: PL/Perl anonymous code block
andrew=#
If you think more documentation is needed, submit a patch.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers