2017-02-16 1 views
0

У меня есть проблемы с выходом этого простого запроса:Weird выход pg_stat_activity

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

во время работы его различными способами:

  1. В IDE
  2. Via работает Psql в терминале
  3. В сценарии bash:

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 и 2 возвращаемые результаты, как мне они нужны:

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 странно - оно не дает мне никакого состояния название, кроме «активных»

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

Что мне не хватает? Как получить все имена состояний через скрипт bash?

+3

Вы подключаетесь как к одному пользователю во всех случаях? 'pg_stat_activity' будет показывать другой вывод суперпользователю, чем обычным пользователям. – jmelesky

+0

Да, причина была в подключении как не суперпользователя. Спасибо. – dreamca4er

+0

@jmelesky, не могли бы вы высказать свой комментарий в качестве ответа? Поэтому я могу выбрать его как правильный – dreamca4er

ответ

0

pg_stat_activity - это представление каталога, в котором будет отображаться различный контент в зависимости от того, вошли ли вы в качестве суперпользователя или как пользователь, не являющийся привилегированным.

С вашего вывода, похоже, что вы вошли в систему как суперпользователь в # 1 и # 2, но как обычный пользователь в # 3.