PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/08/2023 10:51:35

lemjid
Membre

postgresl.auto.conf

Bonjour,

J'utilise la version 14.5 de PostgreSQL avec RedHat8.5

Dans le fichier de configuration "postgresql.auto.conf" on trouve les mentions suivantes:
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

Il se trouve qu'il a les mêmes comportements que le fichier postgtresql.conf.
* on peut modifier, supprimer, ajouter manuellement n'importe quel paramètre de PostgreSQL avec un éditeur (tel que vi, vim...) après un reload ou restart, il prend en compte.

J'avais une (mauvaise) compréhension que les paramètres (dans postgresql.auto.conf), ne seront prises en compte que s'ils sont mises ou modifiés via les ordre SQL "ALTER...set/reset  <param> ;

J'ai vu dans dans un article de Michael Paquier ce commentaire:
"So basically avoid to modify it manually as this is used for ALTER SYSTEM. When a parameter is modified, a temporary file called postgresql.auto.conf.temp is created to rollback to the original state in case of error."
Quel est l'empleur du mot "basically"? juste pour la forme!? ou il y a vraiment une contrainte technique?

Mes interrogations:
1- Est ce que le comportement était toujours comme ceci ou il a changé pour ce fichier de configuration "postgresql.auto.conf".
2- A quel moment le fichier "postgresql.auto.conf.temp" apparait, car je n'ai pas pu mettre la main dessus ( comment faire un test correctement pour le voir?).
3- Hormis l'aspect interactif du changement des paramètres journalisés dans ce fichier quel est le plus par rapport aux paramètres (include_dir, include et include_if_exists)?
4- la mise en garde au début du fichier (Do not édit....), c'est pourquoi à votre avis?

Merci pour vos réponses

B.LEMJID

Hors ligne

#2 18/08/2023 11:49:58

rjuju
Administrateur

Re : postgresl.auto.conf

"So basically avoid to modify it manually as this is used for ALTER SYSTEM. When a parameter is modified, a temporary file called postgresql.auto.conf.temp is created to rollback to the original state in case of error."

Quel est l'empleur du mot "basically"? juste pour la forme!? ou il y a vraiment une contrainte technique?


La signification est "n'y touchez pas sous risque de casser quelque chose".  Si vous avez lu tout le code source de postgres en rapport à ce fichier et tout compris, vous pouvez évidemment modifier le fichier selon ce que vous voulez faire mais si vous tentez un rapport de bug commençant par "j'ai modifié le fichier qui commence par merci de ne pas modifier ce fichier", personne ne daignera répondre.


1- Est ce que le comportement était toujours comme ceci ou il a changé pour ce fichier de configuration "postgresql.auto.conf".
2- A quel moment le fichier "postgresql.auto.conf.temp" apparait, car je n'ai pas pu mettre la main dessus ( comment faire un test correctement pour le voir?).
3- Hormis l'aspect interactif du changement des paramètres journalisés dans ce fichier quel est le plus par rapport aux paramètres (include_dir, include et include_if_exists)?
4- la mise en garde au début du fichier (Do not édit....), c'est pourquoi à votre avis?

1- j'imagine que le comportement a toujours été le même, mais cela n'a pas d'importance.  Ne le modifiez pas manuellement sauf si vous savez ce que vous faites.

2- il apparait de manière temporaire afin de garantir la durabilité du fichier.  C'est un détail d'implémentation que vous pouvez ignorer.

3- Cela n'a aucun rapport avec les possibiligés d'inclusion d'autre fichier.  C'est un mode de configuration via sql qui aura la priorité, tel que documenté.

4- tout modifications pourrait "casser" ALTER SYSTEM.  Encore une fois n'y touchez pas manuellement.

Hors ligne

#3 18/08/2023 15:58:42

lemjid
Membre

Re : postgresl.auto.conf

Bonjour rjuju,

Merci d'avoir pris le temps pour répondre à ma question.
... Si vous avez lu tout le code source de postgres en rapport à ce fichier et tout compris,...
Tu pourras STP me donner le lien vers le code source de ce mécanisme?

Par avance merci

Hors ligne

#4 19/08/2023 17:47:40

rjuju
Administrateur

Re : postgresl.auto.conf

La partie ALTER SYSTEM est géré via https://github.com/postgres/postgres/bl … uc.c#L4450.  La lecture du fichier généré se trouve probablement dans le même fichier, sinon il faut fouiller.

Hors ligne

Pied de page des forums