Chapitre 50. Interface du moteur BKI

Table des matières
50.1. Format des fichiers BKI
50.2. Commandes BKI
50.3. Exemple

Les fichiers d'interface du moteur (BKI) sont des scripts écrits dans un langage spécial, qui est compris par le serveur PostgreSQL quand il est lancé dans le mode spécial << bootstrap >>. Ce mode autorise la création des catalogues systèmes alors que les commandes SQL requièrent l'existence des catalogues. 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 qui lit les quelques fichiers d'en-têtes C spécialement formatés dans le répertoire src/include/catalog 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.

50.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.

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.