Lors du retour de l'SETOF record
les colonnes de sortie ne sont ni typées ni nommées. Ainsi, ce formulaire ne peut pas être utilisé directement dans une clause FROM comme s'il s'agissait d'une sous-requête ou d'une table.
C'est-à-dire, lors de l'émission :
SELECT * from events_by_type_2('social');
nous obtenons cette erreur :
Il peut cependant être "casté" dans les types de colonne corrects par l'appelant SQL. Ce formulaire fonctionne :
SELECT * from events_by_type_2('social') as (id bigint, name text);
et aboutit à :
id | name ----+---------------- 1 | Dance Party 2 | Happy Hour ...
Pour cette raison SETOF record
est considéré comme moins pratique. Il ne doit être utilisé que lorsque les types de colonnes des résultats ne sont pas connus à l'avance.