ALTER LIBRARY

替换当前与 Vertica 编录中的 UDx 库关联的库文件。Vertica 自动将更新文件的副本分发到所有群集节点。编录中定义的引用更新库的 UDx 将自动开始使用更新库文件。如果名称和签名匹配,则视为 UDx 相同。

当前库和替换库必须使用同一种语言编写。

语法

ALTER LIBRARY [[database.]schema.]name [DEPENDS 'depends-path'] AS 'path';

参数

架构

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

name
使用 CREATE LIBRARY 创建的现有库的名称。
DEPENDS 'depends-path'

此库所依赖的文件或库,启动程序节点的文件系统或其他受支持的文件系统或对象存储中的一个或多个文件或目录。对于目录,路径条目以斜杠 (/) 结束,后跟通配符 (*)(可选)。要指定多个文件,请使用冒号 (:) 分隔条目。

如果任何路径条目包含冒号(例如 URI),请在整个 DEPENDS 路径两端加上括号,且单个路径元素使用双引号,如下例所示:

DEPENDS '["s3://mybucket/gson-2.3.1.jar"]'

要指定具有多个目录级别的库,请参阅多级库依赖项

DEPENDS 对使用 R 编写的库没有影响。R 软件包必须本地安装在每个节点上,包括外部依赖项。

AS path
替换库文件在启动程序节点文件系统上的绝对路径。

特权

超级用户,或者架构上的 UDXDEVELOPER 和 CREATE。非超级用户必须明确启用 UDXDEVELOPER 角色。有关示例,请参阅 CREATE LIBRARY

如果 DEPENDS 子句指定具有多个目录级别的库,Vertica 将按照库路径包含该库的所有子目录。例如,以下 CREATE LIBRARY 语句使 UDx 库 mylib 能够导入它在 site‑packages 的子目录中找到的所有 Python 包和模块:

=> CREATE LIBRARY mylib AS '/path/to/python_udx' DEPENDS '/path/to/python/site-packages' LANGUAGE 'Python';

示例

此示例显示了如何使用新文件更新名为 myFunctions 的已定义库。

=> ALTER LIBRARY myFunctions AS '/home/dbadmin/my_new_functions.so';

另请参阅

开发用户定义的扩展 (UDx)