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