diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 4ed06b05..6504536c 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -307,7 +307,7 @@ if (!defined("DRIVER")) { if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) { $connection->set_charset(charset($connection)); // available in MySQLi since PHP 5.0.5 $connection->query("SET sql_quote_show_create = 1, autocommit = 1"); - if (version_compare($connection->server_info, '5.7.8') >= 0) { + if (min_version('5.7.8', 10.2, $connection) >= 0) { $structured_types[lang('Strings')][] = "json"; $types["json"] = 4294967295; } diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 78c71833..793a02ff 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -190,12 +190,12 @@ if (isset($_GET["pgsql"])) { $connection = new Min_DB; $credentials = $adminer->credentials(); if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) { - if ($connection->server_info >= 9) { + if (min_version(9, 0, $connection)) { $connection->query("SET application_name = 'Adminer'"); - if ($connection->server_info >= 9.2) { + if (min_version(9.2, 0, $connection)) { $structured_types[lang('Strings')][] = "json"; $types["json"] = 4294967295; - if ($connection->server_info >= 9.4) { + if (min_version(9.4, 0, $connection)) { $structured_types[lang('Strings')][] = "jsonb"; $types["jsonb"] = 4294967295; } diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 607a56e5..062cee3c 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -76,11 +76,15 @@ function bracket_escape($idf, $back = false) { /** Check if connection has at least the given version * @param string required version * @param string required MariaDB version +* @param Min_DB defaults to $connection * @return bool */ -function min_version($version, $maria_db = "") { +function min_version($version, $maria_db = "", $connection2 = null) { global $connection; - $server_info = $connection->server_info; + if (!$connection2) { + $connection2 = $connection; + } + $server_info = $connection2->server_info; if ($maria_db && preg_match('~([\d.]+)-MariaDB~', $server_info, $match)) { $server_info = $match[1]; $version = $maria_db; diff --git a/changes.txt b/changes.txt index 6b658061..b506045f 100644 --- a/changes.txt +++ b/changes.txt @@ -1,6 +1,7 @@ Adminer 4.5.1-dev: Fix counting selected rows after going back to select page PHP <5.3 compatibility even with Elasticsearch enabled +MariaDB: Support JSON since MariaDB 10.2 Malay translation Adminer 4.5.0 (released 2018-01-24):