69.5. Структура файла BKI

Команда open может применяться, только когда открываемая ей таблица существует и для неё имеются записи в каталогах. (Минимальный набор этих каталогов образуют pg_class, pg_attribute, pg_proc и pg_type.) Чтобы можно было заполнить сами эти таблицы, команда create с указанием bootstrap неявно открывает создаваемую таблицу для добавления данных.

Кроме того, команды declare index и declare 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

Несомненно есть и другие, недокументированные зависимости, диктующие определённый порядок.