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 по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Add SPI results constants available for PL/*
Следующее
От: Alex Goncharov
Дата:
Сообщение: Re: libpq: PQcmdStatus, PQcmdTuples signatures can be painlessly improved