Este recurso foi projetado para permitir que sejam adicionados parâmetros normalmente não conhecidos pelo PostgreSQL por módulos complementares (como linguagens procedurais), permitindo assim que os módulos de extensão sejam configurados da maneira padrão.
As opções personalizadas têm nomes de duas partes: um nome de
extensão, depois um ponto e, em seguida, o nome do parâmetro
propriamente dito, bem como nomes qualificados em
SQL.
Um exemplo seria plpgsql.variable_conflict.
Como pode ser necessário definir opções personalizadas em processos que não carregaram o módulo de extensão relevante, o PostgreSQL irá aceitar uma definição de duas partes para qualquer nome de parâmetro. Estas variáveis são tratadas como marcadores de posição, não tendo função até que o módulo que as define seja carregado. Quando um módulo de extensão é carregado, ele adiciona suas definições de variáveis e converte quaisquer valores de marcadores de posição segundo estas definições. Caso existam marcadores de posição não reconhecidos que comecem com o nome da extensão, serão emitidos avisos e estes marcadores serão removidos.