Začněme vašimi možnostmi:
- pl/pgsql a sql
- pl/perl, pl/pythonu a pl/tcl
- Jiné prosím
Tyto hlavní kategorie mají rozdíly v silných a slabých stránkách. Liší se také v tom, jak k věcem přistupujete. Jednou z velkých slabin externích pls, jako je pl/ruby, je to, že pokud se nepodaří je udržovat, můžete mít později problém.
PL/PGSQL a SQL
V těchto případech můžete pravděpodobně vyjádřit své změny jako SQL dotaz s rekurzivním společným tabulkovým výrazem. Pak můžete použít sql nebo, pokud potřebujete mírnou procedurální podporu, přidejte ji a použijte pl/pgsql. Obvykle k tomu přistupuji takto.
PL/Perl, PL/TCL a PL/PythonU
Můžete také být schopni přenést svůj Ruby kód do Pythonu nebo Perlu a používat PL varianty těchto jazyků. Tyto PL jsou široce používány a udržovány jako součást základní distribuce PostgreSQL. Neodcházejí pryč. To by vám umožnilo lepší transparentnost toho, jak se logika přesouvá.
Jedním z významných omezení PL/Pythonu je, že nemá žádný důvěryhodný režim a jeden problém, na který narazíte s pl/perl, je ten, že důvěryhodný režim znamená, že nemáte přístup k externím modulům.