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

open命令打开的表需要系统事先存在另外一些基本的表 ,在这些表存在并拥有数据之前,不能使用open命令。 这些最低限度必须存在的表是 pg_class, pg_attribute, pg_proc, and 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. 定义索引和toast表

  11. build indices

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