第六十七章. 后端接口

内容
BKI 文件格式
通用命令
宏命令
调试命令
例子
后端接口(BKI)文件是一些脚本,这些脚本输入到 Postgres 后端以特殊的 "bootstrap"(引导)模式运行,这种模式允许在不存在数据库系统的情况下执行数据库函数.BKI 文件因此可以在第一时间用于创建数据库系统.initdb 使用 BKI 文件来做一件事:创建一个数据库.不过 initdb 的 BKI 文件是内部生成的.它用文件 global1.bki.sourcelocal1.template1.bki.source 生成,这些文件放在 Postgres "library" 目录.这些文件是做为 Postgres 安装的一部分安装的.这些 .source 文件是作为 Postgres 制作过程的一部分制作的,是用一个叫 genbki 的制作程序制作的.genbki把一个 Postgres 源文件作为输入,把这个输入分成两份作为 genbki 输入来制作描述那些表的表和 C 头文件.

相关的信息可以在有关 initdbcreatedb,以及 SQL 命令 CREATE DATABASE 的文档中找到.

BKI 文件格式

Postgres 后端按下面描述的方法理解 BKI 文件.如果把 global1.bki.source 文件拿来做为例子,这些描述会变得容易理解些.(像我们上面解释的,这些 .source 文件并不是一个 BKI 文件,但你能够通过它们推导出它们生成的BKI 文件是什么).

命令是由命令名称后面跟着用空白隔开的参数组成的.用 “$” 开头的命令参数被特殊对待.如果“$$” 是头两个字符,那么第一个 “$” 被忽略,并且参数正常处理.如果 “$” 后跟着空白,那么它被当成空(NULL)值.否则跟在 “$” 后面的字符被解释成宏的名称,并因此而导致用宏的值替换参数.如果这个宏没有定义则是一个错误.

宏是用下面语法定义的

define macro macro_name = macro_value
并且用下面语法取消定义
undefine macro macro_name
重新定义用的语法和定义时是一样的.

通用命令和宏命令的列表在后面.