From 3fb6cac3610d07c8407c98cf9d7ce95e3a6fcf29 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 18 Mar 2025 16:00:21 +0100 Subject: [PATCH] PostgreSQL: Display description of system variables --- CHANGELOG.md | 1 + adminer/drivers/mysql.inc.php | 18 +++++++++--------- adminer/drivers/oracle.inc.php | 16 ++++++++++------ adminer/drivers/pgsql.inc.php | 2 +- adminer/drivers/sqlite.inc.php | 6 +++--- adminer/variables.inc.php | 7 +++++-- 6 files changed, 29 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e62878f5..e1143665 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## Adminer dev - PostgreSQL: Display auto_increment of inserted rows +- PostgreSQL: Display description of system variables - CSS: Sticky table headers (bug #918) - IMAP: New plugin driver created for fun diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 23cff3bf..88d7fe05 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -1156,10 +1156,17 @@ if (!defined('Adminer\DRIVER')) { } /** Get server variables - * @return array [$name => $value] + * @return array [[$name, $value]] */ function show_variables() { - return get_key_vals("SHOW VARIABLES"); + return get_rows("SHOW VARIABLES"); + } + + /** Get status variables + * @return array [[$name, $value]] + */ + function show_status() { + return get_rows("SHOW STATUS"); } /** Get process list @@ -1169,13 +1176,6 @@ if (!defined('Adminer\DRIVER')) { return get_rows("SHOW FULL PROCESSLIST"); } - /** Get status variables - * @return array [$name => $value] - */ - function show_status() { - return get_key_vals("SHOW STATUS"); - } - /** Convert field in select and edit * @param array one element from fields() * @return string diff --git a/adminer/drivers/oracle.inc.php b/adminer/drivers/oracle.inc.php index b22c2600..bf65a90f 100644 --- a/adminer/drivers/oracle.inc.php +++ b/adminer/drivers/oracle.inc.php @@ -513,7 +513,16 @@ AND c_src.TABLE_NAME = " . q($table); } function show_variables() { - return get_key_vals('SELECT name, display_value FROM v$parameter'); + return get_rows('SELECT name, display_value FROM v$parameter'); + } + + function show_status() { + $return = array(); + $rows = get_rows('SELECT * FROM v$instance'); + foreach (reset($rows) as $key => $val) { + $return[] = array($key, $val); + } + return $return; } function process_list() { @@ -534,11 +543,6 @@ ORDER BY PROCESS '); } - function show_status() { - $rows = get_rows('SELECT * FROM v$instance'); - return reset($rows); - } - function convert_field($field) { } diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 65ae2b1a..5fcaa091 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -946,7 +946,7 @@ AND typelem = 0" } function show_variables() { - return get_key_vals("SHOW ALL"); + return get_rows("SHOW ALL"); } function process_list() { diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index c0edd037..5d64a3be 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -718,8 +718,9 @@ if (isset($_GET["sqlite"])) { foreach (get_rows("PRAGMA pragma_list") as $row) { $name = $row["name"]; if ($name != "pragma_list" && $name != "compile_options") { + $return[$name] = array($name, ''); foreach (get_rows("PRAGMA $name") as $row) { - $return[$name] .= implode(", ", $row) . "\n"; + $return[$name][1] .= implode(", ", $row) . "\n"; } } } @@ -729,8 +730,7 @@ if (isset($_GET["sqlite"])) { function show_status() { $return = array(); foreach (get_vals("PRAGMA compile_options") as $option) { - list($key, $val) = explode("=", $option, 2); - $return[$key] = $val; + $return[] = explode("=", $option, 2); } return $return; } diff --git a/adminer/variables.inc.php b/adminer/variables.inc.php index ba3c76b9..0e3bfd29 100644 --- a/adminer/variables.inc.php +++ b/adminer/variables.inc.php @@ -9,10 +9,13 @@ if (!$variables) { echo "

" . lang('No rows.') . "\n"; } else { echo "\n"; - foreach ($variables as $key => $val) { + foreach ($variables as $row) { echo ""; + $key = array_shift($row); echo "
" . h($key) . ""; - echo "" . nl_br(h($val)); + foreach ($row as $val) { + echo "" . nl_br(h($val)); + } } echo "
\n"; }