PostgreSQL függvény amely táblát ad vissza

Az alábbi PostgreSQL függvény egy táblát ad vissza, azaz RETURNS SETOF RECORD.
A RECORD, azaz egy sor mezőit a függvény OUT paramétereiként a fejlécében kell megadni.
A fejlesztés közbeni hangolás miatt van ott előbb a törlés.
Mosolygás

(A példa a Drupal 5.x hírlevél modulhoz készült, amely kilistázza, hogy mely hónapban hány új fel- illetve leiratkozó volt a hírlevelekre. A _del tábla saját kiegészítés, nem része a hivatalos drupal modulnak.)

DROP FUNCTION elehir_elofiz_letszam(OUT tid integer, OUT elehir text, OUT ev integer, OUT ho integer, OUT uj numeric, OUT torolve numeric);

CREATE OR REPLACE FUNCTION elehir_elofiz_letszam(OUT tid integer, OUT elehir text, OUT ev integer, OUT ho integer, OUT uj numeric, OUT torolve numeric) RETURNS SETOF RECORD AS $$
SELECT td.tid, td.name AS elehir, ev::integer, ho::integer, sum(uj) AS uj, sum(torolve) AS torolve
FROM (
  SELECT tid, extract(year from datum) AS ev, extract(month from datum) AS ho, count(*) AS uj, 0 AS torolve
    FROM simplenews_snid_tid
    GROUP BY tid, extract(year from datum), extract(month from datum)
  UNION
  SELECT tid, extract(year from datum) AS ev, extract(month from datum) AS ho, 0 AS uj, count(*) AS torolve
    FROM simplenews_snid_tid_del
    GROUP BY tid, extract(year from datum), extract(month from datum)
) foo
LEFT JOIN term_data td ON td.tid = foo.tid
GROUP BY td.tid, td.name, ev, ho
ORDER BY td.name, ev DESC, ho DESC
$$ LANGUAGE SQL;

SELECT * FROM elehir_elofiz_letszam();