From: | Ian Pye <ianpye(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Stateful pointers in set-returning functions |
Date: | 2012-05-24 18:28:01 |
Message-ID: | CAEVWPAXSy60uHe7L8KLRBo9+M3_bz+aUdm4eweaw3MQOdRD=iw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Fair enough -- thanks for the tip.
On Thu, May 24, 2012 at 11:21 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Ian Pye <ianpye(at)gmail(dot)com> writes:
>> I'm writing a set-returning function which places a file handle into
>> PG's FuncCallContext's user_fctx space. My problem is that when the
>> function is ran with a limit clause (SELECT * FROM foo() LIMIT 10) the
>> server will stop calling the function automatically, not giving me a
>> chance to close the file handle. Is there a way to get the limit value
>> inside of foo() and set the max max_calls parameter correctly?
>
> No, and even if there were, this would be a very unsafe practice,
> since errors or other issues could result in early termination of the
> query.
>
> You would likely be better off using tuplestore return mode so that you
> can do all the reading during one call and not have to assume that
> you'll get control back again.
>
> regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-05-24 18:32:47 | Re: "could not open relation with OID" errors after promoting the standby to master |
Previous Message | Andres Freund | 2012-05-24 18:22:25 | Re: Changing the concept of a DATABASE |