Eu precisava saber como fazer muitas vezes uso em um script que eu estava escrevendo. Acontece que você pode criar uma função temporária usando o esquema pg_temp. Este é um esquema que é criado sob demanda para sua conexão e é onde as tabelas temporárias são armazenadas. Quando sua conexão é fechada ou expira, esse esquema é descartado. Acontece que se você criar uma função nesse esquema, o esquema será criado automaticamente. Portanto,
create function pg_temp.testfunc() returns text as
$$ select 'hello'::text $$ language sql;
será uma função que permanecerá enquanto sua conexão permanecer. Não há necessidade de chamar um comando drop.