Innerhalb Ihrer main_function():
RETURN QUERY SELECT * FROM temp_t;
...wenn die temp_t-Tabelle aus z.B. Spalte1 (Typ Integer), Spalte2 (boolean) und Spalte3 (varchar(100)), sollten Sie auch den zurückgegebenen Typ definieren als:
CREATE OR REPLACE FUNCTION main_function(column1 OUT integer, column2 OUT boolean, column3 OUT varchar(100)) RETURNS SETOF record AS
(...)
Eine andere Möglichkeit besteht darin, einen neuen Datentyp zu definieren:
CREATE TYPE temp_t_type AS (
column1 integer,
column2 boolean,
column3 varchar(100)
);
Dieser Typ kann von Ihren Funktionen genauso zurückgegeben werden wie normale Datentypen:
CREATE OR REPLACE FUNCTION main_function() RETURNS SETOF temp_t_type AS
(...)
...und das Ergebnis der Funktion auf die gleiche Weise wie oben beschrieben zurückgeben.