Function with SQL query has no destination for result data
Do it as plain SQL
CREATE OR REPLACE FUNCTION tst_dates_func() RETURNS TABLE( date_value date, date_id int, date_desc varchar) as$BODY$ select a.date_value, a.date_id, a.date_desc from dates_tbl a;$BODY$ LANGUAGE sql;
If you really need plpgsql use return query
CREATE OR REPLACE FUNCTION tst_dates_func() RETURNS TABLE( date_value date, date_id int, date_desc varchar) as$BODY$ BEGIN perform SELECT dblink_connect('remote_db'); return query select a.date_value, a.date_id, a.date_desc from dates_tbl a;END;$BODY$ LANGUAGE plpgsql;
In PLPGSQL - use RETURN QUERYCREATE OR REPLACE FUNCTION tst_dates_func() RETURNS TABLE( date_value date, date_id int, date_desc varchar) as$BODY$ BEGIN RETURN QUERY (select a.date_value, a.date_id, a.date_desc from dates_tbl a);END;$BODY$ LANGUAGE plpgsql;