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…

Prestazioni delle tabelle partizionate in PostgreSQL

Uso di informazioni statistiche e partizionamento delle tabelle per incrementare le performances in PostgreSQL

Variazione del tempo di query in funzione del numero di record inseriti

*In rosso i tempi di accesso delle tabella unica (prova1) in verde i tempi della tabella partizionata (prova2) al crescere delle dimensioni dell’archivio.*

Per una presentazione del problema: [tagschema.com](http://tagschema.com/blogs/tagschema/)