Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HuasoFoundries/phpPgAdmin6.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Phillips <richp10@gmail.com>2017-07-22 18:47:17 +0300
committerRichard Phillips <richp10@gmail.com>2017-07-22 18:47:17 +0300
commit9a32fd248a02956acadcfb386492ad32a73b4e81 (patch)
tree3cf495fd33e2639896836c10f3a58ed1d7be95f4 /src/controllers/InfoController.php
parent59972fe60346784c805ccbd3f53e084a9c8de6d0 (diff)
Reformat all php to PSR-2 Code standards
Diffstat (limited to 'src/controllers/InfoController.php')
-rw-r--r--src/controllers/InfoController.php738
1 files changed, 370 insertions, 368 deletions
diff --git a/src/controllers/InfoController.php b/src/controllers/InfoController.php
index bc6f5e4d..bcf37de4 100644
--- a/src/controllers/InfoController.php
+++ b/src/controllers/InfoController.php
@@ -1,370 +1,372 @@
<?php
-namespace PHPPgAdmin\Controller;
-use \PHPPgAdmin\Decorators\Decorator;
-
-/**
- * Base controller class
- */
-class InfoController extends BaseController {
- public $_name = 'InfoController';
-
- public function render() {
- $conf = $this->conf;
- $misc = $this->misc;
- $lang = $this->lang;
-
- $action = $this->action;
-
- $this->printHeader($lang['strtables'] . ' - ' . $_REQUEST['table'] . ' - ' . $lang['strinfo']);
- $this->printBody();
-
- switch ($action) {
- default:
- $this->doDefault();
- break;
- }
-
- $misc->printFooter();
-
- }
-
- /**
- * List all the information on the table
- *
- * @param string $msg
- * @return string|void
- */
- public function doDefault($msg = '') {
- $conf = $this->conf;
- $misc = $this->misc;
- $lang = $this->lang;
- $data = $misc->getDatabaseAccessor();
-
- $this->printTrail('table');
- $this->printTabs('table', 'info');
- $misc->printMsg($msg);
-
- // common params for printVal
- $shownull = ['null' => true];
-
- // Fetch info
- $referrers = $data->getReferrers($_REQUEST['table']);
- $parents = $data->getTableParents($_REQUEST['table']);
- $children = $data->getTableChildren($_REQUEST['table']);
- $tablestatstups = $data->getStatsTableTuples($_REQUEST['table']);
- $tablestatsio = $data->getStatsTableIO($_REQUEST['table']);
- $indexstatstups = $data->getStatsIndexTuples($_REQUEST['table']);
- $indexstatsio = $data->getStatsIndexIO($_REQUEST['table']);
-
- // Check that there is some info
- if (($referrers === -99 || ($referrers !== -99 && $referrers->recordCount() == 0))
- && $parents->recordCount() == 0 && $children->recordCount() == 0
- && ($tablestatstups->recordCount() == 0 && $tablestatsio->recordCount() == 0
- && $indexstatstups->recordCount() == 0 && $indexstatsio->recordCount() == 0)) {
- $misc->printMsg($lang['strnoinfo']);
- } else {
- // Referring foreign tables
- if ($referrers !== -99 && $referrers->recordCount() > 0) {
- echo "<h3>{$lang['strreferringtables']}</h3>\n";
-
- $columns = [
- 'schema' => [
- 'title' => $lang['strschema'],
- 'field' => Decorator::field('nspname'),
- ],
- 'table' => [
- 'title' => $lang['strtable'],
- 'field' => Decorator::field('relname'),
- ],
- 'name' => [
- 'title' => $lang['strname'],
- 'field' => Decorator::field('conname'),
- ],
- 'definition' => [
- 'title' => $lang['strdefinition'],
- 'field' => Decorator::field('consrc'),
- ],
- 'actions' => [
- 'title' => $lang['stractions'],
- ],
- ];
-
- $actions = [
- 'properties' => [
- 'content' => $lang['strproperties'],
- 'attr' => [
- 'href' => [
- 'url' => 'constraints.php',
- 'urlvars' => [
- 'schema' => Decorator::field('nspname'),
- 'table' => Decorator::field('relname'),
- ],
- ],
- ],
- ],
- ];
-
- echo $this->printTable($referrers, $columns, $actions, 'info-referrers', $lang['strnodata']);
- }
-
- // Parent tables
- if ($parents->recordCount() > 0) {
- echo "<h3>{$lang['strparenttables']}</h3>\n";
-
- $columns = [
- 'schema' => [
- 'title' => $lang['strschema'],
- 'field' => Decorator::field('nspname'),
- ],
- 'table' => [
- 'title' => $lang['strtable'],
- 'field' => Decorator::field('relname'),
- ],
- 'actions' => [
- 'title' => $lang['stractions'],
- ],
- ];
-
- $actions = [
- 'properties' => [
- 'content' => $lang['strproperties'],
- 'attr' => [
- 'href' => [
- 'url' => 'tblproperties.php',
- 'urlvars' => [
- 'schema' => Decorator::field('nspname'),
- 'table' => Decorator::field('relname'),
- ],
- ],
- ],
- ],
- ];
-
- echo $this->printTable($parents, $columns, $actions, 'info-parents', $lang['strnodata']);
- }
-
- // Child tables
- if ($children->recordCount() > 0) {
- echo "<h3>{$lang['strchildtables']}</h3>\n";
-
- $columns = [
- 'schema' => [
- 'title' => $lang['strschema'],
- 'field' => Decorator::field('nspname'),
- ],
- 'table' => [
- 'title' => $lang['strtable'],
- 'field' => Decorator::field('relname'),
- ],
- 'actions' => [
- 'title' => $lang['stractions'],
- ],
- ];
-
- $actions = [
- 'properties' => [
- 'content' => $lang['strproperties'],
- 'attr' => [
- 'href' => [
- 'url' => 'tblproperties.php',
- 'urlvars' => [
- 'schema' => Decorator::field('nspname'),
- 'table' => Decorator::field('relname'),
- ],
- ],
- ],
- ],
- ];
-
- echo $this->printTable($children, $columns, $actions, 'info-children', $lang['strnodata']);
-
- }
-
- // Row performance
- if ($tablestatstups->recordCount() > 0) {
- echo "<h3>{$lang['strrowperf']}</h3>\n";
-
- echo "<table>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\" colspan=\"2\">{$lang['strsequential']}</th>\n";
- echo "\t\t<th class=\"data\" colspan=\"2\">{$lang['strindex']}</th>\n";
- echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strrows2']}</th>\n";
- echo "\t</tr>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strread']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strfetch']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strinsert']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strupdate']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strdelete']}</th>\n";
- echo "\t</tr>\n";
- $i = 0;
-
- while (!$tablestatstups->EOF) {
- $id = (($i % 2) == 0 ? '1' : '2');
- echo "\t<tr class=\"data{$id}\">\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['seq_scan'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['seq_tup_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['idx_scan'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['idx_tup_fetch'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_ins'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_upd'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_del'], 'int4', $shownull), "</td>\n";
- echo "\t</tr>\n";
- $tablestatstups->movenext();
- $i++;
- }
-
- echo "</table>\n";
- }
-
- // I/O performance
- if ($tablestatsio->recordCount() > 0) {
- echo "<h3>{$lang['strioperf']}</h3>\n";
-
- echo "<table>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strheap']}</th>\n";
- echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strindex']}</th>\n";
- echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strtoast']}</th>\n";
- echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strtoastindex']}</th>\n";
- echo "\t</tr>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
- echo "\t</tr>\n";
- $i = 0;
-
- while (!$tablestatsio->EOF) {
- $id = (($i % 2) == 0 ? '1' : '2');
- echo "\t<tr class=\"data{$id}\">\n";
-
- $total = $tablestatsio->fields['heap_blks_hit'] + $tablestatsio->fields['heap_blks_read'];
- if ($total > 0) {
- $percentage = round(($tablestatsio->fields['heap_blks_hit'] / $total) * 100);
- } else {
- $percentage = 0;
- }
-
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['heap_blks_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['heap_blks_hit'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
-
- $total = $tablestatsio->fields['idx_blks_hit'] + $tablestatsio->fields['idx_blks_read'];
- if ($total > 0) {
- $percentage = round(($tablestatsio->fields['idx_blks_hit'] / $total) * 100);
- } else {
- $percentage = 0;
- }
-
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['idx_blks_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['idx_blks_hit'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
-
- $total = $tablestatsio->fields['toast_blks_hit'] + $tablestatsio->fields['toast_blks_read'];
- if ($total > 0) {
- $percentage = round(($tablestatsio->fields['toast_blks_hit'] / $total) * 100);
- } else {
- $percentage = 0;
- }
-
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['toast_blks_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['toast_blks_hit'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
-
- $total = $tablestatsio->fields['tidx_blks_hit'] + $tablestatsio->fields['tidx_blks_read'];
- if ($total > 0) {
- $percentage = round(($tablestatsio->fields['tidx_blks_hit'] / $total) * 100);
- } else {
- $percentage = 0;
- }
-
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['tidx_blks_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($tablestatsio->fields['tidx_blks_hit'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
- echo "\t</tr>\n";
- $tablestatsio->movenext();
- $i++;
- }
-
- echo "</table>\n";
- }
-
- // Index row performance
- if ($indexstatstups->recordCount() > 0) {
- echo "<h3>{$lang['stridxrowperf']}</h3>\n";
-
- echo "<table>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\">{$lang['strindex']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strread']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strfetch']}</th>\n";
- echo "\t</tr>\n";
- $i = 0;
-
- while (!$indexstatstups->EOF) {
- $id = (($i % 2) == 0 ? '1' : '2');
- echo "\t<tr class=\"data{$id}\">\n";
- echo "\t\t<td>", $misc->printVal($indexstatstups->fields['indexrelname']), "</td>\n";
- echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_scan'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_tup_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_tup_fetch'], 'int4', $shownull), "</td>\n";
- echo "\t</tr>\n";
- $indexstatstups->movenext();
- $i++;
- }
-
- echo "</table>\n";
- }
-
- // Index I/0 performance
- if ($indexstatsio->recordCount() > 0) {
- echo "<h3>{$lang['stridxioperf']}</h3>\n";
-
- echo "<table>\n";
- echo "\t<tr>\n";
- echo "\t\t<th class=\"data\">{$lang['strindex']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
- echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
- echo "\t</tr>\n";
- $i = 0;
-
- while (!$indexstatsio->EOF) {
- $id = (($i % 2) == 0 ? '1' : '2');
- echo "\t<tr class=\"data{$id}\">\n";
- $total = $indexstatsio->fields['idx_blks_hit'] + $indexstatsio->fields['idx_blks_read'];
- if ($total > 0) {
- $percentage = round(($indexstatsio->fields['idx_blks_hit'] / $total) * 100);
- } else {
- $percentage = 0;
- }
-
- echo "\t\t<td>", $misc->printVal($indexstatsio->fields['indexrelname']), "</td>\n";
- echo "\t\t<td>", $misc->printVal($indexstatsio->fields['idx_blks_read'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>", $misc->printVal($indexstatsio->fields['idx_blks_hit'], 'int4', $shownull), "</td>\n";
- echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
- echo "\t</tr>\n";
- $indexstatsio->movenext();
- $i++;
- }
-
- echo "</table>\n";
- }
- }
- }
-
-}
+ namespace PHPPgAdmin\Controller;
+
+ use PHPPgAdmin\Decorators\Decorator;
+
+ /**
+ * Base controller class
+ */
+ class InfoController extends BaseController
+ {
+ public $_name = 'InfoController';
+
+ public function render()
+ {
+ $conf = $this->conf;
+ $misc = $this->misc;
+ $lang = $this->lang;
+
+ $action = $this->action;
+
+ $this->printHeader($lang['strtables'] . ' - ' . $_REQUEST['table'] . ' - ' . $lang['strinfo']);
+ $this->printBody();
+
+ switch ($action) {
+ default:
+ $this->doDefault();
+ break;
+ }
+
+ $misc->printFooter();
+ }
+
+ /**
+ * List all the information on the table
+ *
+ * @param string $msg
+ * @return string|void
+ */
+ public function doDefault($msg = '')
+ {
+ $conf = $this->conf;
+ $misc = $this->misc;
+ $lang = $this->lang;
+ $data = $misc->getDatabaseAccessor();
+
+ $this->printTrail('table');
+ $this->printTabs('table', 'info');
+ $misc->printMsg($msg);
+
+ // common params for printVal
+ $shownull = ['null' => true];
+
+ // Fetch info
+ $referrers = $data->getReferrers($_REQUEST['table']);
+ $parents = $data->getTableParents($_REQUEST['table']);
+ $children = $data->getTableChildren($_REQUEST['table']);
+ $tablestatstups = $data->getStatsTableTuples($_REQUEST['table']);
+ $tablestatsio = $data->getStatsTableIO($_REQUEST['table']);
+ $indexstatstups = $data->getStatsIndexTuples($_REQUEST['table']);
+ $indexstatsio = $data->getStatsIndexIO($_REQUEST['table']);
+
+ // Check that there is some info
+ if (($referrers === -99 || ($referrers !== -99 && $referrers->recordCount() == 0))
+ && $parents->recordCount() == 0 && $children->recordCount() == 0
+ && ($tablestatstups->recordCount() == 0 && $tablestatsio->recordCount() == 0
+ && $indexstatstups->recordCount() == 0 && $indexstatsio->recordCount() == 0)) {
+ $misc->printMsg($lang['strnoinfo']);
+ } else {
+ // Referring foreign tables
+ if ($referrers !== -99 && $referrers->recordCount() > 0) {
+ echo "<h3>{$lang['strreferringtables']}</h3>\n";
+
+ $columns = [
+ 'schema' => [
+ 'title' => $lang['strschema'],
+ 'field' => Decorator::field('nspname'),
+ ],
+ 'table' => [
+ 'title' => $lang['strtable'],
+ 'field' => Decorator::field('relname'),
+ ],
+ 'name' => [
+ 'title' => $lang['strname'],
+ 'field' => Decorator::field('conname'),
+ ],
+ 'definition' => [
+ 'title' => $lang['strdefinition'],
+ 'field' => Decorator::field('consrc'),
+ ],
+ 'actions' => [
+ 'title' => $lang['stractions'],
+ ],
+ ];
+
+ $actions = [
+ 'properties' => [
+ 'content' => $lang['strproperties'],
+ 'attr' => [
+ 'href' => [
+ 'url' => 'constraints.php',
+ 'urlvars' => [
+ 'schema' => Decorator::field('nspname'),
+ 'table' => Decorator::field('relname'),
+ ],
+ ],
+ ],
+ ],
+ ];
+
+ echo $this->printTable($referrers, $columns, $actions, 'info-referrers', $lang['strnodata']);
+ }
+
+ // Parent tables
+ if ($parents->recordCount() > 0) {
+ echo "<h3>{$lang['strparenttables']}</h3>\n";
+
+ $columns = [
+ 'schema' => [
+ 'title' => $lang['strschema'],
+ 'field' => Decorator::field('nspname'),
+ ],
+ 'table' => [
+ 'title' => $lang['strtable'],
+ 'field' => Decorator::field('relname'),
+ ],
+ 'actions' => [
+ 'title' => $lang['stractions'],
+ ],
+ ];
+
+ $actions = [
+ 'properties' => [
+ 'content' => $lang['strproperties'],
+ 'attr' => [
+ 'href' => [
+ 'url' => 'tblproperties.php',
+ 'urlvars' => [
+ 'schema' => Decorator::field('nspname'),
+ 'table' => Decorator::field('relname'),
+ ],
+ ],
+ ],
+ ],
+ ];
+
+ echo $this->printTable($parents, $columns, $actions, 'info-parents', $lang['strnodata']);
+ }
+
+ // Child tables
+ if ($children->recordCount() > 0) {
+ echo "<h3>{$lang['strchildtables']}</h3>\n";
+
+ $columns = [
+ 'schema' => [
+ 'title' => $lang['strschema'],
+ 'field' => Decorator::field('nspname'),
+ ],
+ 'table' => [
+ 'title' => $lang['strtable'],
+ 'field' => Decorator::field('relname'),
+ ],
+ 'actions' => [
+ 'title' => $lang['stractions'],
+ ],
+ ];
+
+ $actions = [
+ 'properties' => [
+ 'content' => $lang['strproperties'],
+ 'attr' => [
+ 'href' => [
+ 'url' => 'tblproperties.php',
+ 'urlvars' => [
+ 'schema' => Decorator::field('nspname'),
+ 'table' => Decorator::field('relname'),
+ ],
+ ],
+ ],
+ ],
+ ];
+
+ echo $this->printTable($children, $columns, $actions, 'info-children', $lang['strnodata']);
+ }
+
+ // Row performance
+ if ($tablestatstups->recordCount() > 0) {
+ echo "<h3>{$lang['strrowperf']}</h3>\n";
+
+ echo "<table>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\" colspan=\"2\">{$lang['strsequential']}</th>\n";
+ echo "\t\t<th class=\"data\" colspan=\"2\">{$lang['strindex']}</th>\n";
+ echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strrows2']}</th>\n";
+ echo "\t</tr>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strread']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strfetch']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strinsert']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strupdate']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdelete']}</th>\n";
+ echo "\t</tr>\n";
+ $i = 0;
+
+ while (!$tablestatstups->EOF) {
+ $id = (($i % 2) == 0 ? '1' : '2');
+ echo "\t<tr class=\"data{$id}\">\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['seq_scan'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['seq_tup_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['idx_scan'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['idx_tup_fetch'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_ins'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_upd'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatstups->fields['n_tup_del'], 'int4', $shownull), "</td>\n";
+ echo "\t</tr>\n";
+ $tablestatstups->movenext();
+ $i++;
+ }
+
+ echo "</table>\n";
+ }
+
+ // I/O performance
+ if ($tablestatsio->recordCount() > 0) {
+ echo "<h3>{$lang['strioperf']}</h3>\n";
+
+ echo "<table>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strheap']}</th>\n";
+ echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strindex']}</th>\n";
+ echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strtoast']}</th>\n";
+ echo "\t\t<th class=\"data\" colspan=\"3\">{$lang['strtoastindex']}</th>\n";
+ echo "\t</tr>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
+ echo "\t</tr>\n";
+ $i = 0;
+
+ while (!$tablestatsio->EOF) {
+ $id = (($i % 2) == 0 ? '1' : '2');
+ echo "\t<tr class=\"data{$id}\">\n";
+
+ $total = $tablestatsio->fields['heap_blks_hit'] + $tablestatsio->fields['heap_blks_read'];
+ if ($total > 0) {
+ $percentage = round(($tablestatsio->fields['heap_blks_hit'] / $total) * 100);
+ } else {
+ $percentage = 0;
+ }
+
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['heap_blks_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['heap_blks_hit'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
+
+ $total = $tablestatsio->fields['idx_blks_hit'] + $tablestatsio->fields['idx_blks_read'];
+ if ($total > 0) {
+ $percentage = round(($tablestatsio->fields['idx_blks_hit'] / $total) * 100);
+ } else {
+ $percentage = 0;
+ }
+
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['idx_blks_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['idx_blks_hit'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
+
+ $total = $tablestatsio->fields['toast_blks_hit'] + $tablestatsio->fields['toast_blks_read'];
+ if ($total > 0) {
+ $percentage = round(($tablestatsio->fields['toast_blks_hit'] / $total) * 100);
+ } else {
+ $percentage = 0;
+ }
+
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['toast_blks_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['toast_blks_hit'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
+
+ $total = $tablestatsio->fields['tidx_blks_hit'] + $tablestatsio->fields['tidx_blks_read'];
+ if ($total > 0) {
+ $percentage = round(($tablestatsio->fields['tidx_blks_hit'] / $total) * 100);
+ } else {
+ $percentage = 0;
+ }
+
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['tidx_blks_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($tablestatsio->fields['tidx_blks_hit'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
+ echo "\t</tr>\n";
+ $tablestatsio->movenext();
+ $i++;
+ }
+
+ echo "</table>\n";
+ }
+
+ // Index row performance
+ if ($indexstatstups->recordCount() > 0) {
+ echo "<h3>{$lang['stridxrowperf']}</h3>\n";
+
+ echo "<table>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\">{$lang['strindex']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strscan']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strread']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strfetch']}</th>\n";
+ echo "\t</tr>\n";
+ $i = 0;
+
+ while (!$indexstatstups->EOF) {
+ $id = (($i % 2) == 0 ? '1' : '2');
+ echo "\t<tr class=\"data{$id}\">\n";
+ echo "\t\t<td>", $misc->printVal($indexstatstups->fields['indexrelname']), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_scan'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_tup_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($indexstatstups->fields['idx_tup_fetch'], 'int4', $shownull), "</td>\n";
+ echo "\t</tr>\n";
+ $indexstatstups->movenext();
+ $i++;
+ }
+
+ echo "</table>\n";
+ }
+
+ // Index I/0 performance
+ if ($indexstatsio->recordCount() > 0) {
+ echo "<h3>{$lang['stridxioperf']}</h3>\n";
+
+ echo "<table>\n";
+ echo "\t<tr>\n";
+ echo "\t\t<th class=\"data\">{$lang['strindex']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strdisk']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strcache']}</th>\n";
+ echo "\t\t<th class=\"data\">{$lang['strpercent']}</th>\n";
+ echo "\t</tr>\n";
+ $i = 0;
+
+ while (!$indexstatsio->EOF) {
+ $id = (($i % 2) == 0 ? '1' : '2');
+ echo "\t<tr class=\"data{$id}\">\n";
+ $total = $indexstatsio->fields['idx_blks_hit'] + $indexstatsio->fields['idx_blks_read'];
+ if ($total > 0) {
+ $percentage = round(($indexstatsio->fields['idx_blks_hit'] / $total) * 100);
+ } else {
+ $percentage = 0;
+ }
+
+ echo "\t\t<td>", $misc->printVal($indexstatsio->fields['indexrelname']), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($indexstatsio->fields['idx_blks_read'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>", $misc->printVal($indexstatsio->fields['idx_blks_hit'], 'int4', $shownull), "</td>\n";
+ echo "\t\t<td>({$percentage}{$lang['strpercent']})</td>\n";
+ echo "\t</tr>\n";
+ $indexstatsio->movenext();
+ $i++;
+ }
+
+ echo "</table>\n";
+ }
+ }
+ }
+
+ }