Chapitre 52. Interface moteur BKI

Table des matières
52.1. Format des fichiers BKI
52.2. Commandes BKI
52.3. Exemple

Les fichiers d'interface du moteur (BKI) sont des scripts écrits dans un langage spécial, servis au serveur PostgreSQL lancé dans le mode spécial << bootstrap >> qui lui permet de réaliser les fonctions de base de données sans système de base de données déjà existant. Les fichiers BKI peuvent donc être utilisés pour créer le système de base de données en tout premier lieu. (Et ils ne sont probablement pas utiles pour un autre emploi.)

initdb utilise un fichier BKI pour faire une partie de son travail lors de la création d'un nouveau groupe de base de données. Le fichier en entrée utilisé par initdb est créé lors de la construction et de l'installation de PostgreSQL par un programme nommé genbki.sh à partir de quelques fichiers d'en-têtes C spécialement formatés dans le répertoire des sources. Le fichier BKI créé est appelé postgres.bki et est normalement installé dans le sous-répertoire share du répertoire d'installation.

Des informations plus complètes sont disponibles dans la documentation pour initdb.

52.1. Format des fichiers BKI

Cette section décrit comment le serveur PostgreSQL interprète les fichiers BKI. Cette description sera plus simple à comprendre si le fichier postgres.bki se trouve à portée de main comme exemple. Vous devriez aussi étudier le code source d'initdb pour avoir une idée de la façon dont le moteur est appelé.

L'entrée BKI consiste en une séquence de commandes. Les commandes sont constituées d'un certain nombre d'éléments, suivant la syntaxe de la commande. Les éléments sont habituellement séparés par des espaces blancs mais n'ont pas besoin de l'être s'il n'y a pas d'ambiguïté. Il n'existe pas de séparateur spécial pour les commandes ; le prochain élément qui ne peut syntaxiquement pas appartenir à la commande précédente en lance une autre. (Habituellement, vous devriez mettre une nouvelle commande sur une nouvelle ligne pour plus de clarté.) Les éléments peuvent être certains mots clés, des caractères spéciaux (parenthèses, virgules, etc.), nombres ou chaînes de caractères entre guillemets doubles. Tous sont sensibles à la casse.

Les lignes commençant avec un # sont ignorées.