Cominciamo con le tue opzioni:
- pl/pgsql e sql
- pl/perl, pl/pythonu e pl/tcl
- Altri per favore
Queste categorie principali presentano differenze di punti di forza e di debolezza. Hanno anche differenze nel modo in cui affronti le cose. Uno dei grandi punti deboli di pl esterni come pl/ruby è che se non vengono mantenuti, potresti avere un problema in seguito.
PL/PGSQL e SQL
In questi casi puoi probabilmente esprimere le tue modifiche come una query SQL con un'espressione di tabella comune ricorsiva. Quindi puoi usare sql o, se hai bisogno di un leggero supporto procedurale, aggiungilo e usa pl/pgsql. Di solito è così che mi avvicino a questo.
PL/Perl, PL/TCL e PL/PythonU
Potresti anche essere in grado di trasferire il tuo codice Ruby su Python o Perl e utilizzare le variazioni PL di questi linguaggi. Questi PL sono ampiamente utilizzati e mantenuti come parte della distribuzione principale di PostgreSQL. Non stanno andando via. Ciò ti consentirebbe una maggiore trasparenza su come si muove la logica.
Una limitazione significativa di PL/Python è che non ha una modalità attendibile e un problema che incontrerai con pl/perl è che la modalità attendibile significa nessun accesso a moduli esterni.