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 21/09/2012 09:35:08

bcarriere
Membre

pgstatpack et pg_stat_statements

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

#2 21/09/2012 10:11:24

frost242
Administrateur

Re : pgstatpack et pg_stat_statements

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

#3 21/09/2012 11:51:56

frost242
Administrateur

Re : pgstatpack et pg_stat_statements

Uwe Bartels va réaliser le correctif. Une nouvelle version sera disponible dans quelques jours normalement.


Thomas Reiss

Hors ligne

#4 21/09/2012 15:56:23

bcarriere
Membre

Re : pgstatpack et pg_stat_statements

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

#5 25/09/2012 23:28:59

frost242
Administrateur

Re : pgstatpack et pg_stat_statements

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

#6 26/09/2012 09:49:27

bcarriere
Membre

Re : pgstatpack et pg_stat_statements

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

#7 26/09/2012 10:02:43

bcarriere
Membre

Re : pgstatpack et pg_stat_statements

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

Pied de page des forums