As we've already stated in this chapter, PostgreSQL gives you the power to write functions and store procedures in various languages. The following options are available, and are shipped along with the PostgreSQL core:
- SQL
- PL/pgSQL
- PL/Perl and PL/PerlU
- PL/Python
- PL/Tcl and PL/TclU
SQL is the obvious choice for writing functions and it should be used whenever possible, as it gives the most freedom to the optimizer. However, if you want to write slightly more complex code, PL/pgSQL might be the language of your choice.
PL/pgSQL offers flow control and much more. In this chapter, some of the more advanced and lesser-known features of PL/pgSQL will be shown, but do keep in mind that this chapter is not meant to be a complete tutorial on PL/pgSQL.
The core contains code to run server-side functions in Perl. Basically, the logic...