Chapter 36. Procedural Languages
PostgreSQL allows user-defined functions
to be written in other languages besides SQL and C. These other
languages are generically called procedural
languages (PLs). For a function
written in a procedural language, the database server has
no built-in knowledge about how to interpret the function's source
text. Instead, the task is passed to a special handler that knows
the details of the language. The handler could either do all the
work of parsing, syntax analysis, execution, etc. itself, or it
could serve as "glue" between
PostgreSQL and an existing implementation
of a programming language. The handler itself is a
C language function compiled into a shared object and
loaded on demand, just like any other C function.
There are currently four procedural languages available in the
standard PostgreSQL distribution:
PL/pgSQL (Chapter 37),
PL/Tcl (Chapter 38),
PL/Perl (Chapter 39), and
PL/Python (Chapter 40).
There are additional procedural languages available that are not
included in the core distribution. Appendix H
has information about finding them. In addition other languages can
be defined by users; the basics of developing a new procedural
language are covered in Chapter 47.