On Wed, Apr 28, 2010 at 7:00 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > Jorge Arevalo <jorgearevalo@xxxxxxxxxxxx> 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 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general