Spaltenweise Rückgabe einer Funktion bzw. Elemente eines Record auswählen

Hallo,
meine Funktion gibt drei Werte zurück.

CREATE OR REPLACE FUNCTION tst (text)
    RETURNS record AS $$
DECLARE
    result record;
 BEGIN
   SELECT INTO result 5 AS id, 'testname' AS name, 'C' AS typ;
return result;
END; $$ LANGUAGE 'plpgsql'; 
SELECT tst('');

Leider stehen alle drei Werte in einer Spalte

tst

(5,testname,C)

Ich benötige jeden Wert in einer Spalte. Etwa so

SELECT 5 AS id, 'testname' AS name, 'C' AS typ;

id | name | typ
----±---------±----
5 | testname | C

Ich habe schon versucht statt des Records eine Tabelle zurückzugeben - kein Erfolg.
Eine Unterabfrage brachte lediglich Syntaxfehler.
Eine Antwort würde mich sehr freuen…
VG Ronny



test=# create or replace function bla() returns record as $$ declare r record; begin select into r 1 as a, 3 as b; return  r; end; $$language plpgsql;
CREATE FUNCTION
Zeit: 0,388 ms
test=*# select * from bla() as (a int, b int);
 a | b
---+---
 1 | 3
(1 Zeile)

So vielleicht?


Andreas

Ja genau so! Das wars.
Vielen Dank aus den Märkischen Oderland.