Aggregate "rollup" - Mailing list pgsql-hackers

From mlw
Subject Aggregate "rollup"
Date
Msg-id 3E666256.9050001@mohawksoft.com
Whole thread Raw
Responses Re: Aggregate "rollup"  (Joe Conway <mail@joeconway.com>)
Re: Aggregate "rollup"  (Greg Stark <gsstark@mit.edu>)
List pgsql-hackers
I had written a piece of code about two years ago that used the 
aggregate feature of PostgreSQL to create an array of integers from an 
aggregate, as:

select int_array_aggregate( column ) from table group by column

While it seems pointless to create an array on a select, it has a 
purpose in OLAP. For instance, suppose you do this:

create table fast_lookup as select reference, 
int_array_aggregate(result) from table group by result

The "fast_lookup" table now has all the result entries as an array in a 
single row. In the systems that I have used this, it has provided a 
dramatic improvement, especially when you have a high number of 
identical "reference" entries in a classic "one to many" table.

The question is, would a more comprehensive solution be wanted? 
Possible? Something like:

create table fast_lookup as select reference, aggregate_array( field ) 
from table group by field

Where the function aggregate_array takes any number of data types.

Any thoughts? I think I need to fix the code in the current 
/contrib/intagg anyway, so is it worth doing the extra work to included 
multiple data types?



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PATCHES] Non-colliding auto generated names
Next
From: Bruce Momjian
Date:
Subject: I am back