PostgreSQL custom aggregate functions

Aggregate functions compute a single result from a set of input values. Like sum() or count() they operate on one or more columns and multiple rows and output a single result.

In PostgreSQL is quite easy to create a custom aggregate function, the ingredients are:

  • Create an aggregate function
  • Create a state update function
  • optional: create a final function

For example, if we want to implement the avg function we can write:

CREATE AGGREGATE avg (float8)
(
    sfunc = float8_accum, -- {_count+=1, _sum+=value}
    stype = float8[],
    finalfunc = float8_avg, -- _sum / _count
    initcond = '{0,0}'
);

Now we need a bit more complex aggregate function to write…

continue…

Se niente importa

Una lettera che ho inviato alla mailing-list degli adulti scout laici CNGEI di Firenze.

From: Matteo Bertini
Date: 8 Sett 2010

Ho da poco finito di leggere un bel libro che vi consiglio:

Se niente importa” di Jonathan Safran Foer

un po’ come il libro che fa smettere di fumare, questo libro mi ha fatto smettere di mangiare carne.

Non solo, mi ha anche fatto riflettere su quanto sia vero e importante impegnarsi oggi a trasmettere ai ragazzi ciò che riteniamo giusto e importante, perché davvero:

“L’unico modo per avere un futuro migliore è crearlo oggi attraverso futuri cittadini migliori.”

Rendiamo più facile la vita ai nostri ragazzi perché possano fare scelte che noi non abbiamo la voglia/forza di fare.

Continua a leggere