PL Matrix

From PostgreSQL wiki

Revision as of 04:27, 25 May 2013 by Selena (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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  ?
pl/js  ? pl/js  ?  ?  ?
pl/lolcode  ? pl/lolcode yes  ?  ?
pl/scheme Production pl/scheme yes yes Trusted and Untrusted
pl/php Beta pl/php Yes  ?  ?
pl/ruby  ? pl/ruby  ?  ?  ?
pl/j  ? pl/j  ?  ?  ?
pl/lua Alpha pl/lua yes  ? Trusted and Untrusted
pl/pgpsm Beta pl/pgpsm yes yes  ? SQL/PSM implementation based on pl/pgsql runtime
pl/v8 Production pl/v8js yes yes Trusted 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.

Personal tools