Difference between revisions of "PL Matrix"
From PostgreSQL wiki
Jump to navigationJump to searchLine 88: | Line 88: | ||
| bgcolor="#ececec" | PL/Perl | | bgcolor="#ececec" | PL/Perl | ||
| bgcolor="#ddffdd" | Production | | bgcolor="#ddffdd" | Production | ||
− | | bgcolor="#ddffdd" | in core | + | | bgcolor="#ddffdd" | [https://www.postgresql.org/docs/current/plperl.html in core] |
| bgcolor="#ffdddd" | no | | bgcolor="#ffdddd" | no | ||
| bgcolor="#ffdddd" | no | | bgcolor="#ffdddd" | no | ||
Line 106: | Line 106: | ||
| bgcolor="#ececec" | PL/pgSQL | | bgcolor="#ececec" | PL/pgSQL | ||
| bgcolor="#ddffdd" | Production | | bgcolor="#ddffdd" | Production | ||
− | | bgcolor="#ddffdd" | in core | + | | bgcolor="#ddffdd" | [https://www.postgresql.org/docs/current/plpgsql.html in core] |
| bgcolor="#ddffdd" | yes | | bgcolor="#ddffdd" | yes | ||
| bgcolor="#ddffdd" | yes | | bgcolor="#ddffdd" | yes | ||
Line 115: | Line 115: | ||
| bgcolor="#ececec" | PL/Python | | bgcolor="#ececec" | PL/Python | ||
| bgcolor="#ddffdd" | Production | | bgcolor="#ddffdd" | Production | ||
− | | bgcolor="#ddffdd" | in core | + | | bgcolor="#ddffdd" | [https://www.postgresql.org/docs/current/plpython.html in core] |
| bgcolor="#ddffdd" | yes | | bgcolor="#ddffdd" | yes | ||
| bgcolor="#ddffdd" | support for one OUT parameter from 8.4, multiple from 9.1 | | bgcolor="#ddffdd" | support for one OUT parameter from 8.4, multiple from 9.1 | ||
Line 169: | Line 169: | ||
| bgcolor="#ececec" | None | | bgcolor="#ececec" | None | ||
| bgcolor="#ddffdd" | Production | | bgcolor="#ddffdd" | Production | ||
− | | bgcolor="#ddffdd" | in core | + | | bgcolor="#ddffdd" | [https://www.postgresql.org/docs/current/xfunc-sql.html in core] |
| bgcolor="#ddffdd" | yes (version 9.2+) | | bgcolor="#ddffdd" | yes (version 9.2+) | ||
| bgcolor="#ddffdd" | yes | | bgcolor="#ddffdd" | yes | ||
Line 178: | Line 178: | ||
| bgcolor="#ececec" | PL/Tcl | | bgcolor="#ececec" | PL/Tcl | ||
| bgcolor="#ddffdd" | Production | | bgcolor="#ddffdd" | Production | ||
− | | bgcolor="#ddffdd" | in core | + | | bgcolor="#ddffdd" | [https://www.postgresql.org/docs/current/pltcl.html in core] |
| bgcolor="#ffdddd" | no | | bgcolor="#ffdddd" | no | ||
| bgcolor="#ffdddd" | no | | bgcolor="#ffdddd" | no |
Latest revision as of 15:34, 5 November 2024
This page provides a list of known Procedural Language handlers for PostgreSQL.
Language | Handler | Status | Availability | Named Parameters? | OUT Parameters? | (Un)Trusted | Notes |
---|---|---|---|---|---|---|---|
C# | PL/dotnet | Beta | pl/dotnet | yes | yes | Untrusted | install with CREATE EXTENSION |
F# | PL/dotnet | Beta | pl/dotnet | yes | yes | Untrusted | install with CREATE EXTENSION |
Haskell | PL/Haskell | Production | PL/Haskell | ? | ? | Trusted and Untrusted | |
Java | PL/Java | Production | PL/Java | yes | partial (no INOUT) | Trusted and Untrusted, both configurable | install with CREATE EXTENSION |
JavaScript | PL/v8 | Production | pl/v8js | yes | yes | Trusted | install with CREATE EXTENSION |
Julia | PL/Julia | ? | pl/julia | ? | ? | Untrusted | install with CREATE EXTENSION |
LOLCODE | PL/lolcode | Alpha | pl/lolcode | yes | ? | ? | |
Lua | pl/lua (ng) | Production | pl/lua (ng) | yes | yes | Trusted and Untrusted | install with CREATE EXTENSION |
Perl | PL/Perl | Production | in core | no | no | Trusted and Untrusted | |
PHP | PL/PHP | Beta | pl/php | Yes | ? | ? | |
PL/pgSQL | PL/pgSQL | Production | in core | yes | yes | Trusted | compiled by default |
Python | PL/Python | Production | in core | yes | support for one OUT parameter from 8.4, multiple from 9.1 | Untrusted | |
R | PL/R | Production | PL/R | yes | no | Untrusted | |
Ruby | PL/Ruby | ? | pl/ruby | ? | ? | ? | |
Rust | PL/Rust | Production | PL/Rust | yes | no | Trusted and Untrusted | install with CREATE EXTENSION |
Scheme | PL/scheme | Unmaintained | pl/scheme | yes | yes | Untrusted | |
Shell | PL/sh | Production | PL/sh | no (not useful) | no | Untrusted necessarily | |
SQL | None | Production | in core | yes (version 9.2+) | yes | Trusted | available by default |
Tcl | PL/Tcl | Production | in core | no | no | Trusted and Untrusted | |
XSLT | PL/XSLT | Alpha | pl/xslt | yes | no | Untrusted | install with CREATE EXTENSION |
Note: All languages are allowed to use parameter names in the function parameter list declaration. The Named Parameters column indicates if the body of the function can refer to the parameters by those names, or whether it has to use a notation such as $1, $2, etc.
Note: All languages support parameters that are explicitly marked as IN parameters. Unless otherwise specified, languages that support OUT parameters also support INOUT parameters.