Tom Lane wrote: > mlw <[EMAIL PROTECTED]> writes: > > I need to do some OLAP stuff, and I asked previously if there were a way > > to pass multiple parameters to an aggrigate function. i.e.: > > I looked through the code and it is non-trivial to do, > > Offhand I don't know of any fundamental reason why it couldn't be done, > but you're right that it'd take a fair amount of work. I understand the implications of the work, but it would be VERY cool to be able to do this for statistical stuff. > > > If I do this: > > select mycube(value1) as d1, dimention(value2) as d2, dimention(value3) > > as d3 group by value1; > > Can I safely assume the following: > > (1) mycube() will be called first > > (2) Assuming dimention() has no final func, that final func of mycube() > > will be called last. > > That might be true in the present code, but it strikes me as an awfully > risky set of assumptions. Also, it sounds like what you have in mind is > to have some hidden state that all the aggregate functions will access; > how then will you work if there are more than one set of these > aggregates being used in a query? What I was thinking is that I could use the state to hold a pointer returned by palloc. I don't think I can handle multiple mycube() calls, but short of reworking aggregates, I don't see any other way. > > If the needed parameters are all the same datatype, maybe you could put > them into an array and pass the array as a single argument to the > aggregate. How would you do this without having to make multiple SQL calls? ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://www.postgresql.org/search.mpl