Във вашата main_function():
RETURN QUERY SELECT * FROM temp_t;
...ако таблицата temp_t се състои от напр. колона1 (тип цяло число), колона2 (булева) и колона3 (varchar(100)), трябва също да дефинирате върнатия тип като:
CREATE OR REPLACE FUNCTION main_function(column1 OUT integer, column2 OUT boolean, column3 OUT varchar(100)) RETURNS SETOF record AS
(...)
Друг начин е да дефинирате нов тип данни:
CREATE TYPE temp_t_type AS (
column1 integer,
column2 boolean,
column3 varchar(100)
);
Този тип може да бъде върнат от вашите функции по същия начин като нормалните типове данни:
CREATE OR REPLACE FUNCTION main_function() RETURNS SETOF temp_t_type AS
(...)
...и връща резултат от функцията по същия начин, както е споменато по-горе.