| @@ 383-394 (lines=12) @@ | ||
| 380 | * |
|
| 381 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 382 | */ |
|
| 383 | public function getPreparedXacts($database = null) |
|
| 384 | { |
|
| 385 | if ($database === null) { |
|
| 386 | $sql = 'SELECT * FROM pg_prepared_xacts'; |
|
| 387 | } else { |
|
| 388 | $this->clean($database); |
|
| 389 | $sql = "SELECT transaction, gid, prepared, owner FROM pg_prepared_xacts |
|
| 390 | WHERE database='{$database}' ORDER BY owner"; |
|
| 391 | } |
|
| 392 | ||
| 393 | return $this->selectSet($sql); |
|
| 394 | } |
|
| 395 | ||
| 396 | /** |
|
| 397 | * Returns all available process information. |
|
| @@ 403-420 (lines=18) @@ | ||
| 400 | * |
|
| 401 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 402 | */ |
|
| 403 | public function getProcesses($database = null) |
|
| 404 | { |
|
| 405 | if ($database === null) { |
|
| 406 | $sql = "SELECT datname, usename, pid, waiting, state_change as query_start, |
|
| 407 | case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query |
|
| 408 | FROM pg_catalog.pg_stat_activity |
|
| 409 | ORDER BY datname, usename, pid"; |
|
| 410 | } else { |
|
| 411 | $this->clean($database); |
|
| 412 | $sql = "SELECT datname, usename, pid, waiting, state_change as query_start, |
|
| 413 | case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query |
|
| 414 | FROM pg_catalog.pg_stat_activity |
|
| 415 | WHERE datname='{$database}' |
|
| 416 | ORDER BY usename, pid"; |
|
| 417 | } |
|
| 418 | ||
| 419 | return $this->selectSet($sql); |
|
| 420 | } |
|
| 421 | ||
| 422 | // interfaces Statistics collector functions |
|
| 423 | ||
| @@ 255-272 (lines=18) @@ | ||
| 252 | * |
|
| 253 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 254 | */ |
|
| 255 | public function getProcesses($database = null) |
|
| 256 | { |
|
| 257 | if ($database === null) { |
|
| 258 | $sql = "SELECT datname, usename, procpid AS pid, current_query AS query, query_start, |
|
| 259 | 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 |
|
| 260 | FROM pg_catalog.pg_stat_activity |
|
| 261 | ORDER BY datname, usename, procpid"; |
|
| 262 | } else { |
|
| 263 | $this->clean($database); |
|
| 264 | $sql = "SELECT datname, usename, procpid AS pid, current_query AS query, query_start |
|
| 265 | 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 |
|
| 266 | FROM pg_catalog.pg_stat_activity |
|
| 267 | WHERE datname='{$database}' |
|
| 268 | ORDER BY usename, procpid"; |
|
| 269 | } |
|
| 270 | ||
| 271 | return $this->selectSet($sql); |
|
| 272 | } |
|
| 273 | ||
| 274 | // Tablespace functions |
|
| 275 | ||
| @@ 32-47 (lines=16) @@ | ||
| 29 | * |
|
| 30 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 31 | */ |
|
| 32 | public function getProcesses($database = null) |
|
| 33 | { |
|
| 34 | if ($database === null) { |
|
| 35 | $sql = 'SELECT datname, usename, procpid AS pid, waiting, current_query AS query, query_start |
|
| 36 | FROM pg_catalog.pg_stat_activity |
|
| 37 | ORDER BY datname, usename, procpid'; |
|
| 38 | } else { |
|
| 39 | $this->clean($database); |
|
| 40 | $sql = "SELECT datname, usename, procpid AS pid, waiting, current_query AS query, query_start |
|
| 41 | FROM pg_catalog.pg_stat_activity |
|
| 42 | WHERE datname='{$database}' |
|
| 43 | ORDER BY usename, procpid"; |
|
| 44 | } |
|
| 45 | ||
| 46 | return $this->selectSet($sql); |
|
| 47 | } |
|
| 48 | ||
| 49 | // Tablespace functions |
|
| 50 | ||
| @@ 25-42 (lines=18) @@ | ||
| 22 | * |
|
| 23 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 24 | */ |
|
| 25 | public function getProcesses($database = null) |
|
| 26 | { |
|
| 27 | if ($database === null) { |
|
| 28 | $sql = "SELECT datname, usename, pid, waiting, state_change as query_start, |
|
| 29 | case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query |
|
| 30 | FROM pg_catalog.pg_stat_activity |
|
| 31 | ORDER BY datname, usename, pid"; |
|
| 32 | } else { |
|
| 33 | $this->clean($database); |
|
| 34 | $sql = "SELECT datname, usename, pid, waiting, state_change as query_start, |
|
| 35 | case when state='idle in transaction' then '<IDLE> in transaction' when state = 'idle' then '<IDLE>' else query end as query |
|
| 36 | FROM pg_catalog.pg_stat_activity |
|
| 37 | WHERE datname='{$database}' |
|
| 38 | ORDER BY usename, pid"; |
|
| 39 | } |
|
| 40 | ||
| 41 | return $this->selectSet($sql); |
|
| 42 | } |
|
| 43 | ||
| 44 | /** |
|
| 45 | * Retrieves information for all tablespaces. |
|
| @@ 27-50 (lines=24) @@ | ||
| 24 | * |
|
| 25 | * @return \PHPPgAdmin\ADORecordSet A recordset |
|
| 26 | */ |
|
| 27 | public function getProcesses($database = null) |
|
| 28 | { |
|
| 29 | if ($database === null) { |
|
| 30 | $sql = "SELECT datid, datname, pid, usename, application_name, client_addr, state, wait_event_type, wait_event, state_change as query_start, |
|
| 31 | CASE |
|
| 32 | WHEN state='active' THEN query |
|
| 33 | ELSE state |
|
| 34 | END AS query |
|
| 35 | FROM pg_catalog.pg_stat_activity |
|
| 36 | ORDER BY datname, usename, pid"; |
|
| 37 | } else { |
|
| 38 | $this->clean($database); |
|
| 39 | $sql = "SELECT datid, datname, pid, usename, application_name, client_addr, state, wait_event_type, wait_event, state_change as query_start, |
|
| 40 | CASE |
|
| 41 | WHEN state='active' THEN query |
|
| 42 | ELSE state |
|
| 43 | END AS query |
|
| 44 | FROM pg_catalog.pg_stat_activity |
|
| 45 | WHERE datname='{$database}' |
|
| 46 | ORDER BY usename, pid"; |
|
| 47 | } |
|
| 48 | ||
| 49 | return $this->selectSet($sql); |
|
| 50 | } |
|
| 51 | ||
| 52 | public function hasUserSignals() |
|
| 53 | { |
|