Re: Writing SRF
От | Jorge Arevalo |
---|---|
Тема | Re: Writing SRF |
Дата | |
Msg-id | h2pd321138e1004281320pe48cc85blb17467bb6308444e@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Writing SRF (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Writing SRF
|
Список | pgsql-general |
On Wed, Apr 28, 2010 at 7:00 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Jorge Arevalo <jorgearevalo@gis4free.org> writes: >> I'm writing a SRF following the example from >> http://www.postgresql.org/docs/8.4/interactive/xfunc-c.html (section >> 34.9.10). In the example, in the code executed in first call, we get >> the number of tuples to be returned, and no more. Then, in each call, >> a new tuple is allocated and returned, until reach max_calls. > > You don't have to do it that way, by any means. max_calls is just > a field you can use if you feel like it --- it's not going to be > looked at by anything outside your SRF. If you don't want to determine > the number of result rows at the start, just ignore max_calls, and > use whatever method is convenient to decide that you're done > returning rows. > > regards, tom lane > Yes, actually, I'm not using max_calls. I have my own stop condition. Basically, I check if myStructsArray + call_cntr == NULL. I don't know if it's the best way. I'll test it. My doubt is if I'm doing things right getting all the stuff I need (an array) in the first call, pointing user_fctx to this array and accessing myStructsArray[call_cntr] in each successive call, until myStructsArray + call_cntr == NULL (last array element?). In the example, the row returned is generated from scratch in each call. Many thanks, Jorge
В списке pgsql-general по дате отправления: