Fix stats on PG 9.6. Fixes #1719
parent
9a56fb552c
commit
f48f806657
|
@ -656,6 +656,16 @@ class ServerNode(PGChildNodeView):
|
|||
def modified_sql(self, gid, sid):
|
||||
return make_json_response(data='')
|
||||
|
||||
def get_template_directory(self, version):
|
||||
""" This function will check and return template directory
|
||||
based on postgres verion"""
|
||||
if version >= 90600:
|
||||
return '9.6_plus'
|
||||
elif version >= 90200:
|
||||
return '9.2_plus'
|
||||
else:
|
||||
return '9.1_plus'
|
||||
|
||||
def statistics(self, gid, sid):
|
||||
manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
|
||||
conn = manager.connection()
|
||||
|
@ -665,7 +675,7 @@ class ServerNode(PGChildNodeView):
|
|||
render_template(
|
||||
"/".join([
|
||||
'servers/sql',
|
||||
'9.2_plus' if manager.version >= 90200 else '9.1_plus',
|
||||
self.get_template_directory(manager.version),
|
||||
'stats.sql'
|
||||
]),
|
||||
conn=conn, _=gettext
|
||||
|
@ -1040,7 +1050,7 @@ class ServerNode(PGChildNodeView):
|
|||
|
||||
SQL = render_template("/".join([
|
||||
'servers/sql',
|
||||
'9.2_plus' if manager.version >= 90200 else '9.1_plus',
|
||||
self.get_template_directory(manager.version),
|
||||
'change_password.sql'
|
||||
]),
|
||||
conn=conn, _=gettext,
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
{# Change database server password #}
|
||||
ALTER USER {{conn|qtIdent(user)}} WITH ENCRYPTED PASSWORD {{encrypted_password|qtLiteral}};
|
|
@ -0,0 +1,51 @@
|
|||
SELECT
|
||||
pid AS "PID",
|
||||
usename AS {{ conn|qtIdent(_('User')) }},
|
||||
datname AS {{ conn|qtIdent(_('Database')) }},
|
||||
backend_start AS {{ conn|qtIdent(_('Backend start')) }},
|
||||
CASE
|
||||
WHEN client_hostname IS NOT NULL AND client_hostname != '' THEN
|
||||
client_hostname || ':' || client_port
|
||||
WHEN client_addr IS NOT NULL AND client_addr::text != '' THEN
|
||||
client_addr || ':' || client_port
|
||||
WHEN client_port = -1 THEN
|
||||
'local pipe'
|
||||
ELSE
|
||||
'localhost:' || client_port
|
||||
END AS {{ conn|qtIdent(_('Client')) }},
|
||||
application_name AS {{ conn|qtIdent(_('Application')) }},
|
||||
wait_event_type AS {{ conn|qtIdent(_('Wait event type')) }},
|
||||
wait_event AS {{ conn|qtIdent(_('Wait event name')) }},
|
||||
query AS {{ conn|qtIdent(_('Query')) }},
|
||||
query_start AS {{ conn|qtIdent(_('Query start')) }},
|
||||
xact_start AS {{ conn|qtIdent(_('Xact start')) }}
|
||||
FROM
|
||||
pg_stat_activity sa
|
||||
WHERE
|
||||
(SELECT r.rolsuper OR r.oid = sa.usesysid FROM pg_roles r WHERE r.rolname = current_user)
|
||||
UNION
|
||||
SELECT
|
||||
pid AS "PID",
|
||||
usename AS {{ conn|qtIdent(_('User')) }},
|
||||
'' AS {{ conn|qtIdent(_('Database')) }},
|
||||
backend_start AS {{ conn|qtIdent(_('Backend start')) }},
|
||||
CASE
|
||||
WHEN client_hostname IS NOT NULL AND client_hostname != '' THEN
|
||||
client_hostname || ':' || client_port
|
||||
WHEN client_addr IS NOT NULL AND client_addr::text != '' THEN
|
||||
client_addr || ':' || client_port
|
||||
WHEN client_port = -1 THEN
|
||||
'local pipe'
|
||||
ELSE
|
||||
'localhost:' || client_port
|
||||
END AS {{ conn|qtIdent(_('Client')) }},
|
||||
{{ _('Streaming Replication')|qtLiteral }} AS {{ conn|qtIdent(_('Application')) }},
|
||||
null AS {{ conn|qtIdent(_('Wait event type')) }},
|
||||
null AS {{ conn|qtIdent(_('Wait event name')) }},
|
||||
state || ' [sync (state: ' || COALESCE(sync_state, '') || ', priority: ' || sync_priority::text || ')] (' || sent_location || ' sent, ' || write_location || ' written, ' || flush_location || ' flushed, ' || replay_location || ' applied)' AS {{ conn|qtIdent(_('Query')) }},
|
||||
null AS {{ conn|qtIdent(_('Query start')) }},
|
||||
null AS {{ conn|qtIdent(_('Xact start')) }}
|
||||
FROM
|
||||
pg_stat_replication sa
|
||||
WHERE
|
||||
(SELECT r.rolsuper OR r.oid = sa.usesysid FROM pg_roles r WHERE r.rolname = current_user)
|
Loading…
Reference in New Issue