2008/10/15 Ian Caulfield <[EMAIL PROTECTED]>: > I started to look at implementing array_agg by making the existing > intagg stuff more generic
... and here's what I've come up with. I've currently implemented this as a contrib module to make it quicker to develop/test. The aggregate uses the same basic approach to memory management as intagg, but instead of putting data into the lower bound, an extra structure is placed just before the data, after the null bitmap. This holds a copy of the typlen, typbyval and typalign, as well as a pointer to the next (unaligned) free data byte. In order to avoid breakage due to initial values being set in another aggregate, the transition function will reject an array value where extra padding isn't present before the data values. The ORDER BY clause of array_agg isn't implemented - it seems that this would work best as a generic solution to pass ordered data to aggregates, and is beyond my ability to implement currently. Ian
array_agg.tar.gz
Description: GNU Zip compressed data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers