Mari kita mulai dengan pilihan Anda:
- pl/pgsql dan sql
- pl/perl, pl/pythonu, dan pl/tcl
- Tolong lainnya
Kategori utama ini memiliki perbedaan dalam kekuatan dan kelemahan. Mereka juga memiliki perbedaan dalam cara Anda melakukan sesuatu. Salah satu kelemahan besar dari pls eksternal seperti pl/ruby adalah jika gagal dipertahankan, Anda mungkin mengalami masalah nanti.
PL/PGSQL dan SQL
Dalam kasus ini, Anda mungkin dapat mengekspresikan perubahan Anda sebagai kueri SQL dengan ekspresi tabel umum rekursif. Kemudian Anda dapat menggunakan sql atau, jika Anda memerlukan sedikit dukungan prosedural, tambahkan itu dan gunakan pl/pgsql. Ini biasanya cara saya mendekati ini.
PL/Perl, PL/TCL dan PL/PythonU
Anda mungkin juga dapat mem-porting kode Ruby Anda ke Python atau Perl dan menggunakan variasi PL dari bahasa-bahasa ini. PL ini banyak digunakan dan dipelihara sebagai bagian dari distribusi inti PostgreSQL. Mereka tidak akan pergi. Ini akan memungkinkan Anda transparansi yang lebih baik tentang bagaimana logika bergerak.
Salah satu batasan signifikan dari PL/Python adalah ia tidak memiliki mode tepercaya, dan satu masalah yang akan Anda hadapi dengan pl/Perl adalah bahwa mode tepercaya berarti tidak ada akses ke modul eksternal.