Chapter 50. BKI 后端接口

Table of Contents
50.1. BKI 文件格式
50.2. BKI命令
50.3. 例子

后端接口(BKI)文件是一些用特殊语言写的脚本,这些脚本是 PostgreSQL 后端能够理解的,以特殊的 "bootstrap"(引导)模式运行, 这种模式允许在不存在系统表的零初始条件下执行数据库函数,而普通的 SQL 命令要求系统表必须存在。 因此 BKI 文件可以用于在第一时间创建数据库系统。 (可能除此以外也没有其它用处。)

在创建一个新的数据库集群的时候, initdb就是使用 BKI 文件来完成其工作的一部分。 initdb使用的输入的文件是作为制作 PostgreSQL的一部分,由一个叫 genbki.sh 的程序创建的, 这个程序读取源代码树目录的 src/include/catalog/ 目录里面的几个特殊格式的 C 头文件。生成的 BKI文件叫 postgres.bki 并且通常安装在安装树里的 share 子目录。

相关的信息可以在有关 initdb 的文档中找到。

50.1. BKI 文件格式

本节描述 PostgreSQL 后端是如何理解 BKI 文件。如果把 postgres.bki 文件拿来做为例子, 这些描述会变得容易理解些。 你还可以学习 initdb 的源程序以便获取后端是如何激活的概念。

BKI输入是由一系列命令组成的。 命令是由一些记号组成的,具体是什么由命令语法决定。记号通常是用空白分隔的,但是如果没有歧义的话可以不要。 没有什么特殊的命令分隔符;语法上无法属于前面命令的记号开始新的一条命令。 (通常你会把一条新的命令放在新的一行上以保持清晰。) 记号可以是某些关键字,特殊字符(圆括弧,逗号等),数字,或者双引号字串。 所有东西都是大小写敏感的。

# 开头的行被忽略。