Om satserna du försöker "eval" alltid returnerar samma datatyp, kan du skriva en eval() funktion som använder EXECUTE som nämns av 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
Då kan du göra något som
SELECT eval('select 41') + 1;
Men det här tillvägagångssättet fungerar inte om dina dynamiska uttalanden returnerar något annorlunda för varje uttryck som du vill utvärdera.
Tänk också på att detta öppnar en enorm säkerhetsrisk genom att köra godtyckliga uttalanden. Om det är ett problem beror på din miljö. Om det bara används i interaktiva SQL-sessioner är det inget problem.