MDL-43604 add support for future hacky MariaDB versions

This patch also shows the real server version without
normalisation on the environment page, this should
hopefully help people to identify MariaDB...
This commit is contained in:
Petr Škoda 2014-03-11 09:07:21 +08:00
parent c0e88129d1
commit 1dd74afe9e
2 changed files with 15 additions and 1 deletions

View File

@ -74,6 +74,20 @@ class mariadb_native_moodle_database extends mysqli_native_moodle_database {
return 'mariadb';
}
/**
* Returns database server info array
* @return array Array containing 'description' and 'version' info
*/
public function get_server_info() {
$version = $this->mysqli->server_info;
$matches = null;
if (preg_match('/^5\.5\.5-(10\..+)-MariaDB$/i', $version, $matches)) {
// Looks like MariaDB decided to use these weird version numbers for better BC with MySQL...
$version = $matches[1];
}
return array('description'=>$this->mysqli->server_info, 'version'=>$version);
}
/**
* It is time to require transactions everywhere.
*

View File

@ -984,7 +984,7 @@ function environment_check_database($version, $env_select) {
$result->setLevel($level);
$result->setCurrentVersion($current_version);
$result->setNeededVersion($needed_version);
$result->setInfo($current_vendor);
$result->setInfo($current_vendor . ' (' . $dbinfo['description'] . ')');
/// Do any actions defined in the XML file.
process_environment_result($vendorsxml[$current_vendor], $result);