Chapter 50. BKI Backend интерфейс

Table of Contents
50.1. Формат файла BKI
50.2. Команды BKI
50.3. Пример

Файлы backend интерфейса (BKI) являются скриптами, написанными на специальном языке, который понимает backend процесс PostgreSQL при запуске в режиме "bootstrap". Режим bootstrap позволяет создавать и заполнять системные каталоги "с нуля", в то время как обычные команды SQL требуют, чтобы системные каталоги уже существовали. BKI файлы могут, таким образом, использоваться для первичного создания базы данных в определённом месте. (И, возможно, они не являются полезными для чего-либо другого).

initdb использует BKI файл при создании нового кластера базы данных, чтобы выполнить часть своей работы. Этот файл создаётся как часть процесса сборки и установки PostgreSQL путём запуска скрипта genbki.sh. Данный скрипт читает некоторые специально форматированные заголовочные файлы языка C в подкаталоге src/include/catalog/ дерева исходных текстов. Созданный BKI файл называется postgres.bki и обычно устанавливается в подкаталог share дерева установки.

Соответствующую информацию можно найти в документации по initdb.

50.1. Формат файла BKI

Данная секция описывает как backend процесс PostgreSQL интерпретирует файлы BKI. Это описание будет более лёгким для понимания, если в качестве примера использовать файл postgres.bki.

Ввод BKI состоит из последовательности команд. Команды состоят из нескольких токенов, в зависимости от синтаксиса команды. Токены обычно разделяются пробелами, но в принципе их можно не разделять, если только это не вносит путаницы. Специальных разделителей команд не существует; следующий токен, который синтаксически не может следовать за началом текущей команды, начинает новую команду. (Обычно, для удобства вы должны бы размещать новую команду с новой строки). Токены могут быть определёнными ключевыми словами, специальными символами (скобки, запятые и т.д.), цифрами или заключёнными в двойные кавычки строками. Все токены зависят от регистра букв.

Строки, которые начинаются с # игнорируются.