plv8
PL/JavaScript (v8) 可信过程程序语言
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
plv8 | 3.2.4 | LANG | PostgreSQL | C++ |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3010 | plv8 | 否 | 是 | 否 | 是 | 否 | 否 | pg_catalog |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.2.4 | 1817161514 | plv8 | - |
| RPM | PIGSTY | 3.2.4 | 1817161514 | plv8_$v | - |
| DEB | PIGSTY | 3.2.4 | 1817161514 | postgresql-$v-plv8 | - |
构建
您可以使用 pig build 命令构建 plv8 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 plv8 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
来源:README,Docs site,Built-ins,Runtime configuration,Tag v3.2.4
plv8 是 PostgreSQL 的 trusted JavaScript procedural language,由 V8 引擎驱动。上游当前将扩展标记为 v3.2.4;Pigsty 的 3.2.4-2 包版本只是打包修订,不代表新的上游扩展发布。
基本使用
SQL
常用 built-ins
plv8.elog(level, ...):输出 PostgreSQL 日志或客户端消息。plv8.execute(sql [, args]):执行 SQL,并返回结果行或受影响行数。plv8.prepare(...)、PreparedPlan.execute()、PreparedPlan.cursor():提供预编译 SPI 访问。plv8.subtransaction(fn):以原子方式执行一组 SPI 操作。plv8.find_function(...):按名称调用另一个 PLV8 函数。plv8.memory_usage():查看当前会话的 V8 heap 使用情况。plv8.run_script(source, name):执行具名脚本文本。
运行时设置
SQL
plv8.start_procplv8.v8_flagsplv8.execution_timeoutplv8.memory_limit
注意事项
- 当前文档说明支持 PostgreSQL 13 及以上版本。
- 每个 session 都有独立的全局 JavaScript runtime;切换 role 会初始化单独的 runtime context。
plv8.execution_timeout仅在扩展以 execution-timeout 支持编译时生效。