Din funktion är inte meningsfull, den returnerar ingenting. Det ser ut som en VIEW, så varför skapar du inte en vy?
Edit:Du måste använda OUT-parametrarna eller RETURN TABLE() med parametrarna:
CREATE OR REPLACE FUNCTION my_func(OUT o_id INT, OUT o_bar TEXT)
RETURNS SETOF RECORD AS
$$
BEGIN
RETURN QUERY SELECT id, bar FROM foo;
END;
$$
LANGUAGE plpgsql;
SELECT * FROM my_func();