Se le istruzioni che stai cercando di "valutare" restituiscono sempre lo stesso tipo di dati, puoi scrivere una funzione eval() che utilizza EXECUTE menzionato da Grzegorz.
create or replace function eval(expression text) returns integer
as
$body$
declare
result integer;
begin
execute expression into result;
return result;
end;
$body$
language plpgsql
Quindi potresti fare qualcosa come
SELECT eval('select 41') + 1;
Ma questo approccio non funzionerà se le tue istruzioni dinamiche restituiscono qualcosa di diverso per ogni espressione che vuoi valutare.
Tieni inoltre presente che ciò apre un enorme rischio per la sicurezza eseguendo dichiarazioni arbitrarie. Se questo è un problema dipende dal tuo ambiente. Se viene utilizzato solo nelle sessioni SQL interattive, non è un problema.