2017-02-16 7 views
0

Ich habe Probleme mit dem Ausgang dieser einfachen Abfrage:Weird-Ausgabe von pg_stat_activity

select 
    pid, 
    state 
from pg_stat_activity 
where datname = 'My_DB_name' 

während es verschiedene Arten ausgeführt werden:

  1. In IDE
  2. Via läuft psql in Terminal
  3. Im Bash-Skript:

QUERY="copy (select pid, state from pg_stat_activity where datname = 'My_DB_name') to stdout with csv"

psql -h host -U user -d database -t -c "$QUERY" >> result 

1 und 2 zurück Ergebnisse wie ich brauche sie:

1:

pid  state       
------ ----------------------------- 
23126 idle       
25573 active       
2642 active       
20420 idle       
23391 idle       
5339 idle       
7710 idle       
1558 idle       
12506 idle       
2862 active       
716  active       
9834 idle in transaction (aborted) 

2:

pid |    state    
-------+------------------------------- 
23126 | idle 
25573 | idle 
    2642 | active 
20420 | idle 
23391 | idle 
    5339 | active 
    7710 | idle 
    1558 | idle 
12506 | idle 
    2211 | active 
    716 | active 
    9834 | idle in transaction (aborted) 

3 ist seltsam - es mir jeden Staat geben tut Name außer 'aktiv'

23126, 
25573, 
2642, 
20420, 
23391, 
5339, 
7710, 
1558, 
12506, 
1660,active 
716,active 
1927,active 
9834, 

Was fehlt mir? Wie bekommt man alle Staatsnamen per Bash-Skript?

+3

Verbinden Sie in allen Fällen als derselbe Benutzer? 'pg_stat_activity' zeigt eine andere Ausgabe an einen Superuser als an einen normalen Benutzer. – jmelesky

+0

Ja, der Grund war beim Verbinden als Nicht-Superuser. Vielen Dank. – dreamca4er

+0

@jmelesky, könnten Sie Ihren Kommentar als Antwort posten? Also kann ich es als richtig auswählen – dreamca4er

Antwort

0

pg_stat_activity ist eine Katalogansicht, die je nachdem, ob Sie als Superuser oder als nicht privilegierter Benutzer angemeldet sind, unterschiedliche Inhalte anzeigt.

Aus Ihrer Ausgabe sieht es so aus, als wären Sie als Superuser in # 1 und # 2 angemeldet, aber als normaler Benutzer in # 3.

Verwandte Themen