2012/1/10 Andrew Dunstan <and...@dunslane.net>: > > > 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.
I was blind, I am sorry - I am missing explicit note, so command status is string, that is all. Regards Pavel > > > 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