历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.
LOAD
LOAD — 动态装载一个目标文件
大纲
LOAD 'filename'
输入
filename用于动态装载的目标文件。
输出
- →
LOAD 成功完成时返回的消息。
- →
ERROR: LOAD: could not open file 'filename' 找不到指定的文件时返回的消息。该文件必须对 Postgres后端可见,并指定适当的完整路径名,才能避免此消息。
描述
把一个目标(或".o")文件装载到 Postgres后端地址空间中。文件一旦装载,该文件中的所有函数都可以被访问。这个函数用于支持用户定义的类型和函数。
如果文件没有用
LOAD装载,该文件将在函数第一次被Postgres调用时被自动装载。LOAD
也可以用来在目标文件被编辑并重新编译之后重新装载它。目前只支持由 C 语言文件创建的目标。
注解
已装载目标文件中的函数不应调用其他通过
LOAD
命令装载的目标文件中的函数。例如,文件A中的所有函数应当互相调用、调用标准库或数学库中的函数、或调用
Postgres 本身中的函数。它们不应调用另一个已装载文件
B中定义的函数。这是因为如果B被重新装载,Postgres 装载器无法把A中函数的调用重定位到
B的新地址空间。但如果B没有被重新装载,则不会有问题。
目标文件必须编译为包含位置无关代码。例如,在 DECstation 上,编译要装载的目标文件时必须使用
/bin/cc
加上-G 0选项。
注意,如果你正在把Postgres
移植到新平台,LOAD
必须能够工作才能支持 ADT。
用法
--Load the file /usr/postgres/demo/circle.o -- LOAD '/usr/postgres/demo/circle.o'
兼容性
SQL92
LOAD 在 SQL92 中没有。