From ba70be12a4cd448b64fb63b90a6a6c1aeddf0fb1 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 26 Feb 2025 19:21:13 +0100 Subject: [PATCH] PostgreSQL: Fix help link to pg_catalog views --- adminer/drivers/mysql.inc.php | 2 +- adminer/drivers/pgsql.inc.php | 4 ++-- adminer/drivers/sqlite.inc.php | 2 +- adminer/include/adminer.inc.php | 6 ++++-- adminer/include/driver.inc.php | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 47ba442f..bdafbddc 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -335,7 +335,7 @@ if (!defined("DRIVER")) { } } - function tableHelp($name) { + function tableHelp($name, $is_view = false) { $maria = preg_match('~MariaDB~', $this->_conn->server_info); if (information_schema(DB)) { return strtolower("information-schema-" . ($maria ? "$name-table/" : str_replace("_", "-", $name) . "-table.html")); diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 069d3f85..69be6117 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -238,10 +238,10 @@ if (isset($_GET["pgsql"])) { return $this->_conn->warnings(); } - function tableHelp($name) { + function tableHelp($name, $is_view = false) { $links = array( "information_schema" => "infoschema", - "pg_catalog" => "catalog", + "pg_catalog" => ($is_view ? "view" : "catalog"), ); $link = $links[$_GET["ns"]]; if ($link) { diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index efe267b8..ec7bdd7a 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -130,7 +130,7 @@ if (isset($_GET["sqlite"])) { return queries("REPLACE INTO " . table($table) . " (" . implode(", ", array_keys(reset($rows))) . ") VALUES\n" . implode(",\n", $values)); } - function tableHelp($name) { + function tableHelp($name, $is_view = false) { if ($name == "sqlite_sequence") { return "fileformat2.html#seqtab"; } diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index a7d8f8d1..73e45a57 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -180,8 +180,10 @@ class Adminer { if (support("table") || support("indexes")) { $links["table"] = lang('Show structure'); } + $is_view = false; if (support("table")) { - if (is_view($tableStatus)) { + $is_view = is_view($tableStatus); + if ($is_view) { $links["view"] = lang('Alter view'); } else { $links["create"] = lang('Alter table'); @@ -194,7 +196,7 @@ class Adminer { foreach ($links as $key => $val) { echo " $val"; } - echo doc_link(array($jush => $driver->tableHelp($name)), "?"); + echo doc_link(array($jush => $driver->tableHelp($name, $is_view)), "?"); echo "\n"; } diff --git a/adminer/include/driver.inc.php b/adminer/include/driver.inc.php index 9bb21e35..830a3492 100644 --- a/adminer/include/driver.inc.php +++ b/adminer/include/driver.inc.php @@ -188,9 +188,10 @@ function get_driver($id) { /** Get help link for table * @param string + * @param bool * @return string relative URL or null */ - function tableHelp($name) { + function tableHelp($name, $is_view = false) { } /** Check if C-style escapes are supported