Re: Add SPI results constants available for PL/* - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Add SPI results constants available for PL/*
Date
Msg-id CAFj8pRBiKvhnn0W_67LoGhmGtAK7BF0o4fMi9eA2BURfTb90JQ@mail.gmail.com
Whole thread Raw
In response to Re: Add SPI results constants available for PL/*  (Andrew Dunstan <andrew@dunslane.net>)
List 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 by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Add SPI results constants available for PL/*
Next
From: Alex Goncharov
Date:
Subject: Re: libpq: PQcmdStatus, PQcmdTuples signatures can be painlessly improved