pltclu

PL/TCL 存储过程语言(未受信/高权限)

概览

扩展包名版本分类许可证语言
pltcl1.0LANGPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
3240pltclpg_catalog
3250pltclupg_catalog
相关扩展plpgsql plperlu plpython3u plv8 plluau pljava pg_tle

版本

PG18PG17PG16PG15PG14
1.01.01.01.01.0

安装

提示:这是 PostgreSQL 内核自带的 contrib 扩展

CREATE EXTENSION pltclu;

用法

pltclu: PL/Tcl 不受信过程语言

PL/Tcl 不受信版本提供完整的 Tcl 功能,包括文件系统访问和外部程序执行。只有超级用户可以使用此语言创建函数。

CREATE EXTENSION pltclu;

-- 从服务器文件系统读取文件
CREATE FUNCTION read_file(filename text) RETURNS text
LANGUAGE pltclu AS $$
  set fd [open $1 r]
  set content [read $fd]
  close $fd
  return $content
$$;

-- 执行外部命令
CREATE FUNCTION run_command(cmd text) RETURNS text
LANGUAGE pltclu AS $$
  return [exec {*}$1]
$$;

-- 访问环境变量
CREATE FUNCTION get_env(varname text) RETURNS text
LANGUAGE pltclu AS $$
  if {[info exists ::env($1)]} {
    return $::env($1)
  }
  return ""
$$;

SELECT get_env('HOME');

最后修改 2026-03-14: update extension metadata (953cbd0)