Cette fonctionnalité a été conçue pour permettre l'ajout de paramètres habituellement inconnus de PostgreSQL par des modules complémentaires (comme les langages procéduraux). Cela permet de configurer ces extensions de façon standard.
Les options personnalisées ont des noms en deux parties : un nom
d'extension, suivi d'un point, suivi du nom du paramètre, tout comme les
noms qualifiés en SQL. Voici un exemple :
plpgsql.variable_conflict
.
Comme les options personnalisées peuvent avoir besoin d'être configurées par des processus qui n'ont pas chargé le module d'extension associé, PostgreSQL acceptera une configuration pour tout paramètre ayant un nom en deux parties. Ces variables sont traitées comme des espaces réservés et n'ont pas de fonction tant que le module qui les définit n'est pas chargé. Quand un module d'extension est chargé, il ajoute ses définitions de variables, et convertit les valeurs déjà initialisées suivant leur définition. S'il existe des variables non reconnues dont le nom commence par son nom d'extension, des avertissements sont envoyés et ces variables sont supprimées.