Re: Add SPI results constants available for PL/*
От | Pavel Stehule |
---|---|
Тема | Re: Add SPI results constants available for PL/* |
Дата | |
Msg-id | CAFj8pRBiKvhnn0W_67LoGhmGtAK7BF0o4fMi9eA2BURfTb90JQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Add SPI results constants available for PL/* (Andrew Dunstan <andrew@dunslane.net>) |
Список | pgsql-hackers |
2012/1/10 Andrew Dunstan <andrew@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 >
В списке pgsql-hackers по дате отправления: