Chapter 6. BKIバックエンドインタフェース

Table of Contents
6.1. BKIファイルフォーマット
6.2. BKI コマンド
6.3. BKIの例

バックエンドインタフェース(BKI) ファイルは特別な言語で書かれていて、 "bootstrap"モードといわれる、すでに存在しているデータベースシステムを 使用せずにデータベース機能を実行する特別なモードで実行されている Postgresのバックエンドに働きかけます。 したがって、BKI ファイルはデータベースシステムを 初めて作成するときに使用します。(つまりそれ以外の時にはあまり有効ではありません。)

initdbは新しいデータベースクラスタを作成 する際にBKIファイルを使用します。 initdbが使う入力ファイルは Postgresの構築過程で genbki.shというプログラムによって、ソースツリー 内にある特別にフォーマットされたCのヘッダーファイルから作成されます。 作成されたグローバルカタログのBKIファイルは global.bkiと呼ばれます。また、template1 データ ベースに格納されたカタログで、他に作成されたデータベースに複製された ものはtemplate1.bkiと呼ばれ、インストールツリー のshareというサブディレクトリに通常インストール されます。

関連情報はinitdbのドキュメントでもご覧になれます。

6.1. BKIファイルフォーマット

このセクションではPostgresのバックエンド がどのようにしてBKI ファイルを解釈するのかを説明 します。例としてglobal.bkiファイルがお手元にあ ると、この説明文は一層理解し易くなると思われます。また、バックエン ドがどのように起動されるかを理解するために initdbのソースコードをご覧になることもお 勧めいたします。

BKI インプットはコマンドのシーケンスから成っています。 コマンドはいくつものトークンから構成されていて、コマンドのシンタックスに 依存しています。トークンは通常スペースで分離されていますが、 曖昧性がなければその必要性はありません。特別なコマンドセパレーターは ありません。したがって、次のコマンドに統語論的に属せないトークンは 新たなコマンドとなります。(通常、分かりやすくするために、新しいコマンドは 新しい行に書きます。) トークンはある一定のキーワードや特別な文字 (カッコ、カンマなど)、数字、二重引用符で囲われた文字列などが 使用できます。大文字小文字はすべて区別されます。

#から始まる行は無視されます。