Re: OLAP, Aggregates, and order of operations

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: mlw <markw(at)mohawksoft(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: OLAP, Aggregates, and order of operations
Date: 2001-08-23 16:29:55
Message-ID: 4315.998584195@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

mlw <markw(at)mohawksoft(dot)com> 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.

> 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?

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.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2001-08-23 16:46:18 Re: A couple items on TODO
Previous Message Tom Lane 2001-08-23 16:15:10 Re: A couple items on TODO