*/
function getProcesses($database = null) {
if ($database === null)
- $sql = "SELECT datname, usename, pid, query, query_start
+ $sql = "SELECT datname, usename, pid, waiting, state_change as query_start,
+ case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query
FROM pg_catalog.pg_stat_activity
ORDER BY datname, usename, pid";
else {
$this->clean($database);
- $sql = "SELECT datname, usename, pid, query, query_start
+ $sql = "SELECT datname, usename, pid, waiting, state_change as query_start,
+ case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query
FROM pg_catalog.pg_stat_activity
WHERE datname='{$database}'
ORDER BY usename, pid";
return $status;
}
+ /**
+ * Returns all available process information.
+ * @param $database (optional) Find only connections to specified database
+ * @return A recordset
+ */
+ function getProcesses($database = null) {
+ if ($database === null)
+ $sql = "SELECT datname, usename, procpid AS pid, current_query AS query, query_start,
+ case when (select count(*) from pg_locks where pid=pg_stat_activity.procpid and granted is false) > 0 then 't' else 'f' end as waiting
+ FROM pg_catalog.pg_stat_activity
+ ORDER BY datname, usename, procpid";
+ else {
+ $this->clean($database);
+ $sql = "SELECT datname, usename, procpid AS pid, current_query AS query, query_start
+ case when (select count(*) from pg_locks where pid=pg_stat_activity.procpid and granted is false) > 0 then 't' else 'f' end as waiting
+ FROM pg_catalog.pg_stat_activity
+ WHERE datname='{$database}'
+ ORDER BY usename, procpid";
+ }
+
+ $rc = $this->selectSet($sql);
+
+ return $rc;
+ }
// Tablespace functions
'title' => $lang['strprocess'],
'field' => field('pid'),
),
+ 'blocked' => array(
+ 'title' => $lang['strblocked'],
+ 'field' => field('waiting'),
+ ),
'query' => array(
'title' => $lang['strsql'],
'field' => field('query'),
$lang['strvariables'] = 'Variables';
$lang['strprocess'] = 'Process';
$lang['strprocesses'] = 'Processes';
+ $lang['strblocked'] = 'Blocked';
$lang['strsetting'] = 'Setting';
$lang['streditsql'] = 'Edit SQL';
$lang['strruntime'] = 'Total runtime: %s ms';