Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai installé pgstatpack et pris des clichés, tout se passe bien.
Puis je charge pg_stat_statements tout se apsse correctement pour cet outil par contre je rencontre cette installation me génère des erreurs sur pgstatpack, je n'arrive plus à prendre de clichés:
demo=# SELECT pgstatspack_snap('after pg_stat_statements');
ERROR: missing FROM-clause entry for table "n"
LIGNE 11 : join pgstatspack_names n1 on s.query=n.name
^
REQUÃTE : INSERT INTO pgstatspack_statements
( snapid, calls, total_time, "rows", query_id, user_name_id)
SELECT
spid as snapid,
s.calls as calls,
s.total_time as total_time,
s.rows as rows,
n1.nameid,
n2.nameid
FROM pg_stat_statements s
join pgstatspack_names n1 on s.query=n.name
join pgstatspack_names n2 on s.pg_get_userbyid(s.userid)=n2.name
WHERE dbid=(select oid from pg_database where datname=current_database())
ORDER BY total_time
CONTEXTE : PL/pgSQL function "pgstatspack_snap" line 186 at SQL statement
Si je redésactive pg_stat_statements je peux reprendre des clichés correctement.
Hors ligne
Bonjour,
Dans un premier temps, il va vous falloir modifier le script sql/pgstatspack_create_snap.sql pour corriger la condition jointure mal écrite (ligne 203 du script SQL):
join pgstatspack_names n1 on s.query=n1.name
Une fois que c'est fait, il vous faudra recréer la fonction pgstatspack_snap en exécutant le script sur la base sur laquelle vous avez rencontrez ce problème.
Je remonte le bug à l'auteur.
Cordialement,
Thomas
Thomas Reiss
Hors ligne
Uwe Bartels va réaliser le correctif. Une nouvelle version sera disponible dans quelques jours normalement.
Thomas Reiss
Hors ligne
après correction j'ai l'erreur suivante :
demo=# select pgstatspack_snap('mon commentaire2');
ERROR: schema "s" does not exist
CONTEXTE : SQL statement "INSERT INTO pgstatspack_statements
( snapid, calls, total_time, "rows", query_id, user_name_id)
SELECT
spid as snapid,
s.calls as calls,
s.total_time as total_time,
s.rows as rows,
n1.nameid,
n2.nameid
FROM pg_stat_statements s
join pgstatspack_names n1 on s.query=n1.name
join pgstatspack_names n2 on s.pg_get_userbyid(s.userid)=n2.name
WHERE dbid=(select oid from pg_database where datname=current_database())
ORDER BY total_time"
PL/pgSQL function "pgstatspack_snap" line 186 at SQL statement
Hors ligne
Bonjour,
Désolé de ne pas avoir donné de nouvelles depuis. L'auteur a poussé le correctif adéquat pour gérer correctement pg_stat_statements: le patch appliqué.
Vous devriez pouvoir récupérer la dernière version et faire fonctionner pgstatspack correctement dorénavant.
Thomas Reiss
Hors ligne
APRES CORRECTION ET REINSTALLATION DE PGSTATSPACK J'AI TOUJOURS UNE ERREUR :
[BRICE] 26/09/12 09:16:47 >./remove_pgstats.sh
Removing Statistics Package for database template1
Removing Statistics Package for database demo
[BRICE] 26/09/12 09:16:47 >./install_pgstats.sh
Results for database template1
Installing Statistics Package for database template1
Results for database demo
Installing Statistics Package for database demo
[BRICE] 26/09/12 09:16:47 >psql -d demo
psql (9.1.3)
Saisissez « help » pour l'aide.
demo=# select pgstatspack_snap('mon com');
ERROR: schema "s" does not exist
CONTEXTE : SQL statement "INSERT INTO pgstatspack_statements
( snapid, calls, total_time, "rows", query_id, user_name_id)
SELECT
spid as snapid,
s.calls as calls,
s.total_time as total_time,
s.rows as rows,
n1.nameid,
n2.nameid
FROM pg_stat_statements s
join pgstatspack_names n1 on s.query=n1.name
join pgstatspack_names n2 on s.pg_get_userbyid(s.userid)=n2.name
WHERE dbid=(select oid from pg_database where datname=current_database())
ORDER BY total_time"
PL/pgSQL function "pgstatspack_snap" line 186 at SQL statement
Hors ligne
En fait il n'y a pas que vers la ligne 200 à corriger :
71c71
< coalesce(pg_relation_size(t.relid),0)+coalesce(pg_relation_size(s.relid),0) as tbl_size,
---
> pg_relation_size(t.relid)+pg_relation_size(s.relid) as tbl_size,
203,204c203,204
< join pgstatspack_names n1 on s.query=n1.name
< join pgstatspack_names n2 on pg_get_userbyid(s.userid)=n2.name
---
> join pgstatspack_names n1 on s.query=n.name
> join pgstatspack_names n2 on s.pg_get_userbyid(s.userid)=n2.name
cela fonctionne maintenant ,
Merci
Hors ligne
Pages : 1