Re: SPI_exec doesn't return proc context (on 9.1) - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: SPI_exec doesn't return proc context (on 9.1)
Date
Msg-id AANLkTimcuZ9LxPGpjKT67y+CjHBCo4visJ=HJMF10tBw@mail.gmail.com
Whole thread Raw
In response to Re: SPI_exec doesn't return proc context (on 9.1)  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: SPI_exec doesn't return proc context (on 9.1)  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
2011/1/29 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> I am playing with demos for PostgreSQL's Prague Developer Day and I
>> found a strange behave. SPI_exec should to return to proc context. But
>> it isn't true.
>
> Yes it is.

ah, I though a savedctx, but it restore procctx, that is child contextof SPI too.

>
>> In following demo, I have to play with MemoryContext
>> when I would to get a correct result. Is it ok?
>
> The commented-out lines of code don't appear to have anything to do with
> what you claim the problem is.  What it looks to me like you're doing is
> copying the result out to the function's calling context, which is not
> either of the SPI contexts established by SPI_connect (and removed by
> SPI_finish).

>
> The less crocky way to do that is to use SPI_palloc() for something that
> should be allocated in the outer context.

I understand. Is there some way, where I can use a cstring_to_text
function? There isn't simple way to get a saveCtx.

some like SPI_copyDatum ... ?

Pavel

>
>                        regards, tom lane
>


pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: WIP: RangeTypes
Next
From: Steve Singer
Date:
Subject: Re: pl/python SPI in subtransactions