PostgreSQL允许使用除了 SQL 和 C 之外的其他语言编写用户定义的函数。这些其他的语言通常被称作过程语言(PL)。对于一个用过程语言编写的函数,数据库服务器没有关于如何解释该函数的源文本的内建知识。因此,这个任务被交给一个了解语言细节的特殊处理器。该处理器能够自己处理所有的解析、语法分析、执行工作,或者它可以作为一种PostgreSQL和编程语言既有实现之间的“粘合剂”。就像任何其他 C 函数一样,处理器本身是一个编译到共享对象并且按需载入的 C 语言函数。
在PostgreSQL的标准发布中当前有四种过程语言可用: PL/pgSQL、 PL/Tcl、 PL/Perl以及 PL/Python。 还有其他过程语言可用,
PL | Language | Homepage |
---|---|---|
PL/Lua | Lua | https://github.com/pllua/pllua |
PL/R | R | http://www.joeconway.com/plr.html |
PL/sh | Unix shell | https://github.com/petere/plsh |
PL/v8 | JavaScript | https://github.com/plv8/plv8 |
PL/go | Go | https://github.com/microo8/plgo |
PL/Java | Java | https://tada.github.io/pljava |
PL/sh | Unix shell | https://github.com/petere/plsh |
先看看Postgres 支持的语言