Laten we beginnen met uw opties:
- pl/pgsql en sql
- pl/perl, pl/pythonu en pl/tcl
- Andere pls
Deze hoofdcategorieën hebben verschillen in sterke en zwakke punten. Ze hebben ook verschillen in hoe je dingen aanpakt. Een van de grote zwakheden van externe pls zoals pl/ruby is dat als ze niet worden onderhouden, je later een probleem kunt hebben.
PL/PGSQL en SQL
In deze gevallen kunt u uw wijzigingen waarschijnlijk uitdrukken als een SQL-query met recursieve algemene tabelexpressie. Dan kun je sql gebruiken of, als je wat procedurele ondersteuning nodig hebt, dat toevoegen en pl/pgsql gebruiken. Dit is meestal hoe ik dit aanpak.
PL/Perl, PL/TCL en PL/PythonU
Mogelijk kunt u ook uw Ruby-code overzetten naar Python of Perl en de PL-varianten van deze talen gebruiken. Deze PL's worden veel gebruikt en onderhouden als onderdeel van de kerndistributie van PostgreSQL. Ze gaan niet weg. Dit zou u een betere transparantie geven van hoe de logica zich verplaatst.
Een belangrijke beperking van PL/Python is dat het geen vertrouwde modus heeft, en een probleem dat u tegenkomt met pl/perl is dat vertrouwde modus geen toegang tot externe modules betekent.