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/*  (Pavel Stehule <pavel.stehule@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Jan-Benedict Glaw
Дата:
Сообщение: Re: pgsphere
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: Add SPI results constants available for PL/*