I use to follow the "skype" way of accessing Postgres - to wrap everything into stored procedures.
This is minimalistic wrapper over pg module to allow just this.
If I get to it, here will be the documentation and reasoning why I think it worth doing.
Example of syntax for function returning one row:
create or replace function test () returns table ( "status" int, "data" text ) as $$ begin return query select 200::int, 'ok'::text; end; $$ language plpgsql security definer;