后端接口(BKI)文件是一些用特殊语言写的脚本,这些脚本是 PostgreSQL 后端能够理解的,以特殊的 "bootstrap"(引导)模式运行, 这种模式允许在不存在系统表的零初始条件下执行数据库函数,而普通的 SQL 命令要求系统表必须存在。 因此 BKI 文件可以用于在第一时间创建数据库系统。 (可能除此以外也没有其它用处。)
在创建一个新的数据库集群的时候, initdb就是使用 BKI 文件来完成其工作的一部分。 initdb使用的输入的文件是作为制作 PostgreSQL的一部分,由一个叫 genbki.sh 的程序创建的, 这个程序读取源代码树目录的 src/include/catalog/ 目录里面的几个特殊格式的 C 头文件。生成的 BKI文件叫 postgres.bki 并且通常安装在安装树里的 share 子目录。
相关的信息可以在有关 initdb 的文档中找到。
本节描述 PostgreSQL 后端是如何理解 BKI 文件。如果把 postgres.bki 文件拿来做为例子, 这些描述会变得容易理解些。 你还可以学习 initdb 的源程序以便获取后端是如何激活的概念。
BKI输入是由一系列命令组成的。 命令是由一些记号组成的,具体是什么由命令语法决定。记号通常是用空白分隔的,但是如果没有歧义的话可以不要。 没有什么特殊的命令分隔符;语法上无法属于前面命令的记号开始新的一条命令。 (通常你会把一条新的命令放在新的一行上以保持清晰。) 记号可以是某些关键字,特殊字符(圆括弧,逗号等),数字,或者双引号字串。 所有东西都是大小写敏感的。
以 # 开头的行被忽略。