59.3. 系统初始化的BKI文件的结构

open命令打开的表需要系统事先存在另外一些基本的表,在这些表存在并拥有数据之前, 不能使用 open 命令。这些最低限度必须存在的表是pg_class,pg_attribute, pg_proc,pg_type。为了允许这些表自己被填充,带bootstrap 选项的create隐含打开所创建的表用于插入数据。

同样,declare indexdeclare toast 命令也不能在它们所需要系统表创建并填充之前使用。

因此,postgres.bki文件的结构必须是这样的:

  1. create bootstrap其中一个关键表

  2. insert数据,这些数据至少描述这些关键表本身

  3. close

  4. 重复创建和填充其它关键表

  5. create(不带 bootstrap)一个非关键表

  6. open

  7. insert需要的数据

  8. close

  9. 重复创建其它非关键表

  10. 定义索引

  11. build indices

当然,肯定还有其它未记录文档的顺序依赖关系。