Zacznijmy od twoich opcji:
- pl/pgsql i sql
- pl/perl, pl/pythonu i pl/tcl
- Inne prosze
Te główne kategorie różnią się mocnymi i słabymi stronami. Mają też różnice w sposobie podejścia do rzeczy. Jedną z największych słabości zewnętrznych plików pls, takich jak pl/ruby, jest to, że jeśli nie zostaną utrzymane, możesz mieć problem później.
PL/PGSQL i SQL
W takich przypadkach prawdopodobnie możesz wyrazić swoje zmiany jako zapytanie SQL z rekurencyjnym wspólnym wyrażeniem tabelowym. Następnie możesz użyć sql lub, jeśli potrzebujesz trochę wsparcia proceduralnego, dodaj to i użyj pl/pgsql. Zwykle tak właśnie podchodzę.
PL/Perl, PL/TCL i PL/PythonU
Możesz także przenieść swój kod Ruby do Pythona lub Perla i używać odmian PL tych języków. Te PL są szeroko używane i utrzymywane jako część podstawowej dystrybucji PostgreSQL. Nie odchodzą. Umożliwiłoby to lepszą przejrzystość tego, jak porusza się logika.
Jednym z istotnych ograniczeń PL/Pythona jest to, że nie ma trybu zaufanego, a jednym z problemów, które napotkasz w pl/perl, jest to, że tryb zaufany oznacza brak dostępu do zewnętrznych modułów.