pg_tle
AWS 可信语言扩展
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_tle | 1.5.2 | LANG | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3000 | pg_tle | 否 | 是 | 是 | 是 | 否 | 否 | pgtle |
| 相关扩展 | plpgsql plv8 pllua pljava plperl plpython3u plprql plsh |
|---|
require bison flex to build
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.5.2 | 1817161514 | pg_tle | - |
| RPM | PGDG | 1.5.2 | 1817161514 | pg_tle_$v | - |
| DEB | PIGSTY | 1.5.2 | 1817161514 | postgresql-$v-pg-tle | - |
构建
您可以使用 pig build 命令构建 pg_tle 扩展的 RPM / DEB 包:
pig build pkg pg_tle # 构建 RPM / DEB 包
安装
您可以直接安装 pg_tle 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_tle; # 当前活跃 PG 版本安装
pig ext install -y pg_tle -v 18 # PG 18
pig ext install -y pg_tle -v 17 # PG 17
pig ext install -y pg_tle -v 16 # PG 16
pig ext install -y pg_tle -v 15 # PG 15
pig ext install -y pg_tle -v 14 # PG 14
dnf install -y pg_tle_18 # PG 18
dnf install -y pg_tle_17 # PG 17
dnf install -y pg_tle_16 # PG 16
dnf install -y pg_tle_15 # PG 15
dnf install -y pg_tle_14 # PG 14
apt install -y postgresql-18-pg-tle # PG 18
apt install -y postgresql-17-pg-tle # PG 17
apt install -y postgresql-16-pg-tle # PG 16
apt install -y postgresql-15-pg-tle # PG 15
apt install -y postgresql-14-pg-tle # PG 14
预加载配置:
shared_preload_libraries = 'pg_tle';
创建扩展:
CREATE EXTENSION pg_tle;
用法
pg_tle 允许你使用可信语言(SQL、PL/pgSQL、PL/v8、PL/Perl)创建和管理 PostgreSQL 扩展,无需访问文件系统或重启服务器。
在 postgresql.conf 中将 pg_tle 添加到 shared_preload_libraries:
shared_preload_libraries = 'pg_tle'
安装 TLE 扩展
SELECT pgtle.install_extension(
'my_extension', -- 扩展名称
'1.0', -- 版本
'My custom extension', -- 描述
$_pgtle_$
CREATE FUNCTION my_func() RETURNS text AS $$
SELECT 'hello from my_extension';
$$ LANGUAGE SQL;
$_pgtle_$
);
管理扩展版本
-- 添加升级路径
SELECT pgtle.install_update_path(
'my_extension', -- 扩展名称
'1.0', -- 源版本
'1.1', -- 目标版本
$_pgtle_$
CREATE OR REPLACE FUNCTION my_func() RETURNS text AS $$
SELECT 'hello from my_extension v1.1';
$$ LANGUAGE SQL;
$_pgtle_$
);
-- 设置默认版本
SELECT pgtle.set_default_version('my_extension', '1.1');
使用 TLE 扩展
CREATE EXTENSION my_extension;
SELECT my_func(); -- 'hello from my_extension'
ALTER EXTENSION my_extension UPDATE TO '1.1';
删除 TLE 扩展
DROP EXTENSION my_extension;
SELECT pgtle.uninstall_extension('my_extension');
钩子与功能
注册自定义钩子(例如密码检查钩子):
SELECT pgtle.register_feature('my_password_check', 'passcheck');
SELECT pgtle.unregister_feature('my_password_check', 'passcheck');
核心函数
| 函数 | 说明 |
|---|---|
pgtle.install_extension() | 安装新的 TLE 扩展 |
pgtle.install_update_path() | 添加版本间的升级路径 |
pgtle.set_default_version() | 设置扩展的默认版本 |
pgtle.uninstall_extension() | 删除 TLE 扩展 |
pgtle.register_feature() | 注册功能钩子 |
pgtle.unregister_feature() | 取消注册功能钩子 |
pgtle.available_extensions() | 列出可用的 TLE 扩展 |
pgtle.available_extension_versions() | 列出可用版本 |