From 3dd1b4147253c80a4d63231a9bb6f53d0d4d925a Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Mon, 24 Mar 2025 05:58:35 +0100 Subject: [PATCH] Notices: Store maria into a declared variable --- adminer/drivers/mssql.inc.php | 2 +- adminer/drivers/mysql.inc.php | 15 ++++++++------- adminer/drivers/oracle.inc.php | 2 +- adminer/drivers/pgsql.inc.php | 8 ++++---- adminer/drivers/sqlite.inc.php | 1 + adminer/include/adminer.inc.php | 2 +- adminer/include/auth.inc.php | 2 +- adminer/include/editing.inc.php | 4 ++-- adminer/include/pdo.inc.php | 2 +- plugins/codemirror.php | 2 +- plugins/drivers/clickhouse.php | 2 +- plugins/drivers/elastic.php | 2 +- plugins/drivers/firebird.php | 1 + plugins/drivers/imap.php | 1 + plugins/drivers/mongo.php | 2 +- plugins/drivers/simpledb.php | 2 +- 16 files changed, 27 insertions(+), 23 deletions(-) diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 80742ccc..71035a01 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -13,7 +13,7 @@ if (isset($_GET["mssql"])) { define('Adminer\DRIVER', "mssql"); if (extension_loaded("sqlsrv") && $_GET["ext"] != "pdo") { class Db { - public $extension = "sqlsrv", $server_info, $affected_rows, $errno, $error; + public $extension = "sqlsrv", $flavor = '', $server_info, $affected_rows, $errno, $error; private $link, $result; private function get_error() { diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index e4389aa8..03465532 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -8,7 +8,7 @@ if (!defined('Adminer\DRIVER')) { // MySQLi supports everything, MySQL doesn't support multiple result sets, PDO_MySQL doesn't support orgtable if (extension_loaded("mysqli") && $_GET["ext"] != "pdo") { class Db extends \MySQLi { - public $extension = "MySQLi"; + public $extension = "MySQLi", $flavor = ''; function __construct() { parent::init(); @@ -63,6 +63,7 @@ if (!defined('Adminer\DRIVER')) { class Db { public $extension = "MySQL", ///< @var string extension name + $flavor = '', ///< @var string different vendor with the same API, e.g. MariaDB, usually stays empty $server_info, ///< @var string server version $affected_rows, ///< @var int number of affected rows $errno, ///< @var int last error code @@ -369,7 +370,7 @@ if (!defined('Adminer\DRIVER')) { function slowQuery($query, $timeout) { if (min_version('5.7.8', '10.1.2')) { - if ($this->conn->maria) { + if ($this->conn->flavor == 'maria') { return "SET STATEMENT max_statement_time=$timeout FOR $query"; } elseif (preg_match('~^(SELECT\b)(.+)~is', $query, $match)) { return "$match[1] /*+ MAX_EXECUTION_TIME(" . ($timeout * 1000) . ") */ $match[2]"; @@ -394,7 +395,7 @@ if (!defined('Adminer\DRIVER')) { } function tableHelp($name, $is_view = false) { - $maria = $this->conn->maria; + $maria = ($this->conn->flavor == 'maria'); if (information_schema(DB)) { return strtolower("information-schema-" . ($maria ? "$name-table/" : str_replace("_", "-", $name) . "-table.html")); } @@ -451,8 +452,8 @@ if (!defined('Adminer\DRIVER')) { if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) { $connection->set_charset(charset($connection)); $connection->query("SET sql_quote_show_create = 1, autocommit = 1"); - $connection->maria = preg_match('~MariaDB~', $connection->server_info); - $drivers[DRIVER] = ($connection->maria ? "MariaDB" : "MySQL"); + $connection->flavor = (preg_match('~MariaDB~', $connection->server_info) ? 'maria' : ''); + $drivers[DRIVER] = ($connection->flavor == 'maria' ? "MariaDB" : "MySQL"); return $connection; } $return = $connection->error; @@ -599,7 +600,7 @@ if (!defined('Adminer\DRIVER')) { */ function fields($table) { global $connection; - $maria = $connection->maria; + $maria = ($connection->flavor == 'maria'); $return = array(); foreach (get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = " . q($table) . " ORDER BY ORDINAL_POSITION") as $row) { $field = $row["COLUMN_NAME"]; @@ -824,7 +825,7 @@ if (!defined('Adminer\DRIVER')) { $default = $field[1][3]; if (preg_match('~ GENERATED~', $default)) { // swap default and null - $field[1][3] = ($connection->maria ? "" : $field[1][2]); // MariaDB doesn't support NULL on virtual columns + $field[1][3] = ($connection->flavor == 'maria' ? "" : $field[1][2]); // MariaDB doesn't support NULL on virtual columns $field[1][2] = $default; } $alter[] = ($table != "" ? ($field[0] != "" ? "CHANGE " . idf_escape($field[0]) : "ADD") : " ") . " " . implode($field[1]) . ($table != "" ? $field[2] : ""); diff --git a/adminer/drivers/oracle.inc.php b/adminer/drivers/oracle.inc.php index cb07fcb2..e8b95f60 100644 --- a/adminer/drivers/oracle.inc.php +++ b/adminer/drivers/oracle.inc.php @@ -7,7 +7,7 @@ if (isset($_GET["oracle"])) { define('Adminer\DRIVER', "oracle"); if (extension_loaded("oci8") && $_GET["ext"] != "pdo") { class Db { - public $extension = "oci8", $server_info, $affected_rows, $errno, $error; + public $extension = "oci8", $flavor = '', $server_info, $affected_rows, $errno, $error; public $_current_db; private $link, $result; diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 9fd74c23..cf86b8d7 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -7,7 +7,7 @@ if (isset($_GET["pgsql"])) { define('Adminer\DRIVER', "pgsql"); if (extension_loaded("pgsql") && $_GET["ext"] != "pdo") { class Db { - public $extension = "PgSQL", $server_info, $affected_rows, $error, $timeout; + public $extension = "PgSQL", $flavor = '', $server_info, $affected_rows, $error, $timeout; private $link, $result, $string, $database = true; function _error($errno, $error) { @@ -333,9 +333,9 @@ if (isset($_GET["pgsql"])) { $connection->query("SET application_name = 'Adminer'"); } $version = $connection->result("SELECT version()"); - $connection->cockroach = preg_match('~CockroachDB~', $version); + $connection->flavor = (preg_match('~CockroachDB~', $version) ? 'cockroach' : ''); $connection->server_info = preg_replace('~^\D*([\d.]+[-\w]*).*~', '\1', $version); - if ($connection->cockroach) { // we don't use "PostgreSQL / CockroachDB" by default because it's too long + if ($connection->flavor == 'cockroach') { // we don't use "PostgreSQL / CockroachDB" by default because it's too long $drivers[DRIVER] = "CockroachDB"; } return $connection; @@ -962,7 +962,7 @@ AND typelem = 0" function support($feature) { global $connection; return preg_match('~^(check|database|table|columns|sql|indexes|descidx|comment|view|' . (min_version(9.3) ? 'materializedview|' : '') . 'scheme|' . (min_version(11) ? 'procedure|' : '') . 'routine|sequence|trigger|type|variables|drop_col' - . ($connection->cockroach ? '' : '|processlist') // https://github.com/cockroachdb/cockroach/issues/24745 + . ($connection->flavor == 'cockroach' ? '' : '|processlist') // https://github.com/cockroachdb/cockroach/issues/24745 . '|kill|dump)$~', $feature) ; } diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index a50921d2..63bed403 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -100,6 +100,7 @@ if (isset($_GET["sqlite"])) { if (class_exists('Adminer\SqliteDb')) { class Db extends SqliteDb { + public $flavor = ''; function __construct() { parent::__construct(":memory:"); diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index fdd80507..1ca4c8de 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -1076,7 +1076,7 @@ class Adminer { echo "\n"; } echo script("syntaxHighlighting('" . (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '\1', $connection->server_info) : "") . "'" - . ($connection->maria ? ", 'maria'" : ($connection->cockroach ? ", 'cockroach'" : "")) . ");" + . ($connection->flavor == 'maria' ? ", 'maria'" : ($connection->flavor == 'cockroach' ? ", 'cockroach'" : "")) . ");" ); } diff --git a/adminer/include/auth.inc.php b/adminer/include/auth.inc.php index a3c72b61..df1ecf93 100644 --- a/adminer/include/auth.inc.php +++ b/adminer/include/auth.inc.php @@ -187,7 +187,7 @@ if (isset($_GET["username"]) && is_string(get_password())) { if ($adminer->operators === null) { $adminer->operators = $driver->operators; } - if (isset($connection->maria) || $connection->cockroach) { + if (Driver::$jush == 'sql' || $connection->flavor == 'cockroach') { save_settings(array("vendor-" . DRIVER . "-" . SERVER => $drivers[DRIVER])); } } diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index ebdfb757..f9176517 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -596,11 +596,11 @@ function doc_link($paths, $text = "?") { $urls = array( 'sql' => "https://dev.mysql.com/doc/refman/$version/en/", 'sqlite' => "https://www.sqlite.org/", - 'pgsql' => "https://www.postgresql.org/docs/" . ($connection->cockroach ? "current" : $version) . "/", + 'pgsql' => "https://www.postgresql.org/docs/" . ($connection->flavor == 'cockroach' ? "current" : $version) . "/", 'mssql' => "https://learn.microsoft.com/en-us/sql/", 'oracle' => "https://www.oracle.com/pls/topic/lookup?ctx=db" . preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s', '\1\2', $server_info) . "&id=", ); - if ($connection->maria) { + if ($connection->flavor == 'maria') { $urls['sql'] = "https://mariadb.com/kb/en/"; $paths['sql'] = (isset($paths['mariadb']) ? $paths['mariadb'] : str_replace(".html", "/", $paths['sql'])); } diff --git a/adminer/include/pdo.inc.php b/adminer/include/pdo.inc.php index e8fb0d12..f6fa0a6f 100644 --- a/adminer/include/pdo.inc.php +++ b/adminer/include/pdo.inc.php @@ -4,7 +4,7 @@ namespace Adminer; // PDO can be used in several database drivers if (extension_loaded('pdo')) { abstract class PdoDb { - public $server_info, $affected_rows, $errno, $error; + public $flavor = '', $server_info, $affected_rows, $errno, $error; protected $pdo; private $result; diff --git a/plugins/codemirror.php b/plugins/codemirror.php index 62c2472f..6d108a65 100644 --- a/plugins/codemirror.php +++ b/plugins/codemirror.php @@ -44,7 +44,7 @@ function getCmMode(el) { if (match) { const modes = { js: 'application/json', - sql: 'text/x-maria ? "mariadb" : "mysql"); ?>', + sql: 'text/x-flavor == "maria" ? "mariadb" : "mysql"); ?>', oracle: 'text/x-sql', clickhouse: 'text/x-sql', firebird: 'text/x-sql' diff --git a/plugins/drivers/clickhouse.php b/plugins/drivers/clickhouse.php index c37335a2..f0a92579 100644 --- a/plugins/drivers/clickhouse.php +++ b/plugins/drivers/clickhouse.php @@ -8,7 +8,7 @@ if (isset($_GET["clickhouse"])) { if (ini_bool('allow_url_fopen')) { class Db { - public $extension = "JSON", $server_info, $errno, $error; + public $extension = "JSON", $flavor = '', $server_info, $errno, $error; public $_db = 'default'; private $result, $url; diff --git a/plugins/drivers/elastic.php b/plugins/drivers/elastic.php index dd66077f..bb927dbd 100644 --- a/plugins/drivers/elastic.php +++ b/plugins/drivers/elastic.php @@ -9,7 +9,7 @@ if (isset($_GET["elastic"])) { if (ini_bool('allow_url_fopen')) { class Db { - public $extension = "JSON", $server_info, $errno, $error; + public $extension = "JSON", $flavor = '', $server_info, $errno, $error; private $url; /** diff --git a/plugins/drivers/firebird.php b/plugins/drivers/firebird.php index 96934776..3720930b 100644 --- a/plugins/drivers/firebird.php +++ b/plugins/drivers/firebird.php @@ -14,6 +14,7 @@ if (isset($_GET["firebird"])) { class Db { public $extension = "Firebird", + $flavor = '', $server_info, $affected_rows, $errno, diff --git a/plugins/drivers/imap.php b/plugins/drivers/imap.php index a9fa7105..16d7bf67 100644 --- a/plugins/drivers/imap.php +++ b/plugins/drivers/imap.php @@ -20,6 +20,7 @@ if (isset($_GET["imap"])) { if (extension_loaded("imap")) { class Db { public $extension = "IMAP"; + public $flavor = ''; public $error; public $server_info = "?"; // imap_mailboxmsginfo() or imap_check() don't return anything useful private $mailbox; diff --git a/plugins/drivers/mongo.php b/plugins/drivers/mongo.php index 8d9d8d8d..603130ab 100644 --- a/plugins/drivers/mongo.php +++ b/plugins/drivers/mongo.php @@ -8,7 +8,7 @@ if (isset($_GET["mongo"])) { if (class_exists('MongoDB\Driver\Manager')) { class Db { - public $extension = "MongoDB", $server_info = MONGODB_VERSION, $affected_rows, $error, $last_id; + public $extension = "MongoDB", $flavor = '', $server_info = MONGODB_VERSION, $affected_rows, $error, $last_id; /** @var MongoDB\Driver\Manager */ public $_link; public $_db, $_db_name; diff --git a/plugins/drivers/simpledb.php b/plugins/drivers/simpledb.php index e7fec2b3..8d9c67b2 100644 --- a/plugins/drivers/simpledb.php +++ b/plugins/drivers/simpledb.php @@ -8,7 +8,7 @@ if (isset($_GET["simpledb"])) { if (class_exists('SimpleXMLElement') && ini_bool('allow_url_fopen')) { class Db { - public $extension = "SimpleXML", $server_info = '2009-04-15', $error, $timeout, $next, $affected_rows; + public $extension = "SimpleXML", $flavor = '', $server_info = '2009-04-15', $error, $timeout, $next, $affected_rows; private $result; function select_db($database) {