Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 18/04/2013 14:44:27
- ruizsebastien
- Membre
Localisation des fonctions sur le file system
Bonjour,
Avec cette fonction :
select pg_relation_filepath('nom_de_mon_objet');
on peut récupérer le chemin qui mène vers le fichier qui correspond à l'objet sur le file system.
Exemple de résultat :
"pg_tblspc/16389/PG_9.2_201204301/16387/16582"
Ca ne marche que pour les tables et les index.
J'aimerais trouver le fichier sur le File System qui correspond à une fonction. Mais je ne trouve pas.
J'arrive à trouver l'OID d'une fonction (avec pg_proc) mais il n'y a pas de correspondance avec un fichier sur le FS.
Comment faire pour trouver le fichier qui correspond à une fonction ?
Ou sont stockées les fonctions ?
(Sur PGadmin on voit que les fonctions ne sont pas dans un tablespace...)
Cordialement,
Sébastien.
Hors ligne
#2 18/04/2013 19:34:41
- rjuju
- Administrateur
Re : Localisation des fonctions sur le file system
Bonjour,
les procédures stockées sont justement stockées dans la table pg_proc, il n'y a pas un fichier par procédure stockée.
Julien.
https://rjuju.github.io/
Hors ligne
#3 19/04/2013 09:53:02
- ruizsebastien
- Membre
Re : Localisation des fonctions sur le file system
merci rjuju,
dans ces conditions comment je peux avoir la date de dernière modification d'une fonction ?
Cordialement,
Sébastien.
Hors ligne
#4 19/04/2013 19:44:34
- rjuju
- Administrateur
Re : Localisation des fonctions sur le file system
Le catalogue système ne stocke pas cette information. De toutes façons, un simple touch sur un fichier de stockage modifierait la méta donnée, elle n'est donc pas fiable pour cela. Vous pouvez modifier le paramètre "log_statement" et le positionner à ddl, vous aurez alors une trace dans les log des modifications des fonctions.
Julien.
https://rjuju.github.io/
Hors ligne
#5 22/04/2013 09:20:22
- ruizsebastien
- Membre
Re : Localisation des fonctions sur le file system
Merci rjuju pour ta réponse.
Pour info, il existe une solution mais ça ne marche que pour les tables et les index :
- chercher le chemin sur le FS du fichier qui correspond à l'objet :
select pg_relation_filepath('ma_table')
"pg_tblspc/16389/PG_9.2_201204301/16387/16582"
- requêtes :
SELECT * FROM pg_stat_file('pg_tblspc/16389/PG_9.2_201204301/16387/16582');
SELECT (pg_stat_file('pg_tblspc/16389/PG_9.2_201204301/16387/16582')).modification;
Cordialement,
Sébastien.
Hors ligne
#6 22/04/2013 11:05:04
- rjuju
- Administrateur
Re : Localisation des fonctions sur le file system
Cela donnera effectivement la dernière modification sur le fichier, ce qui n'est pas la même chose que la dernière modification sur la table.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1