PostgreSQL supporta linguaggi procedurali collegabili ed esiste un progetto per estendere PostgreSQL con PL/Java come lingua.
Non consiglio di inserire troppo codice nell'RDBMS. Gli strumenti per sviluppare, testare ed eseguire il debug del codice nel livello dell'applicazione sono migliori degli strumenti per il codice nell'RDBMS.
Inoltre, molti sviluppatori non capiscono che il codice all'interno dell'RDBMS dovrebbe obbedire all'isolamento delle transazioni. Provano a inviare e-mail da trigger e così via. Penso che il codice con effetti collaterali dovrebbe essere nel livello dell'applicazione, in modo da non creare effetti fantasma (ad es. un'e-mail potrebbe notificare una modifica del database, anche se la modifica è stata annullata).