Uvnitř vaší main_function():
RETURN QUERY SELECT * FROM temp_t;
...pokud se tabulka temp_t skládá např. column1 (type integer), column2 (boolean) a column3 (varchar(100)), měli byste také definovat vrácený typ jako:
CREATE OR REPLACE FUNCTION main_function(column1 OUT integer, column2 OUT boolean, column3 OUT varchar(100)) RETURNS SETOF record AS
(...)
Dalším způsobem je definovat nový datový typ:
CREATE TYPE temp_t_type AS (
column1 integer,
column2 boolean,
column3 varchar(100)
);
Tento typ mohou být vráceny vašimi funkcemi stejným způsobem jako normální datové typy:
CREATE OR REPLACE FUNCTION main_function() RETURNS SETOF temp_t_type AS
(...)
...a vrátí výsledek z funkce stejným způsobem, jak je uvedeno výše.