PL Matrix
From PostgreSQL wiki
This page is an attempt to document all the available Procedural Language Handlers for PostgreSQL. WARNING: The information presented here is still very much experimental and guaranteed to be out-of-date ...
Language | Status | Availability | Named Parameters? | OUT Parameters? | (Un)Trusted | Notes |
---|---|---|---|---|---|---|
pl/pgsql | Production | in core | yes | yes | Trusted | compiled by default |
sql | Production | in core | yes (version 9.2+) | yes | Trusted | available by default |
pl/perl | Production | in core | no | no | Trusted and Untrusted | |
pl/python | Production | in core | yes | support for one OUT parameter from 8.4, multiple from 9.1 | Untrusted | |
pl/tcl | Production | in core | no | no | Trusted and Untrusted | |
PL/sh | Production | PL/sh | no (not useful) | no | Untrusted necessarily | |
PL/R | Production | PL/R | yes | no | Untrusted | |
PL/Java | Production | PL/Java | yes | yes (no INOUT) | Trusted and Untrusted, both configurable | install with CREATE EXTENSION |
pl/lolcode | Alpha | pl/lolcode | yes | ? | ? | |
pl/scheme | ? | pl/scheme | yes | yes | Trusted and Untrusted | |
pl/php | Beta | pl/php | Yes | ? | ? | |
pl/ruby | ? | pl/ruby | ? | ? | ? | |
pl/lua (ng) | Production | pl/lua (ng) | yes | yes | Trusted and Untrusted | install with CREATE EXTENSION |
pl/v8 | Production | pl/v8js | yes | yes | Trusted | install with CREATE EXTENSION |
PL/XSLT | Alpha | pl/xslt | yes | no | Untrusted | install with CREATE EXTENSION |
PL/Julia | ? | pl/julia | ? | ? | Untrusted | install with CREATE EXTENSION |
Note: For all languages, it is allowed to place parameter names in the function parameter list declaration. What the Named Parameters column is about is whether the body of the function can refer to the parameters by those names, or whether it has to use some other notation, such as $1, $2, etc.
Note: All languages support parameters that are explicitly marked as IN parameters. Those that support OUT parameters also automatically handle INOUT parameters.