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 没有重装载,就不会有问题.

对象文件必须编译成包含位置无关的代码.例如, 在 DECstations 上你必须使用带 -G 0 选项的 /bin/cc 编译将要装载的对象(目标)文件.

注意如果你向新的平台移植 Postgres ,为支持 ADT  LOAD 必须(可用).
 

用法

Load the file /usr/postgres/demo/circle.o:
LOAD '/usr/postgres/demo/circle.o'

兼容性

SQL92