diff options
author | Dries Buytaert <dries@buytaert.net> | 2006-10-22 16:46:41 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2006-10-22 16:46:41 +0000 |
commit | e2ed7b8eef8b0f9687767e33c6530b0ab98da5c2 (patch) | |
tree | 2deaf529e26e87a41076d9624e5d33a8cfc5fd63 | |
parent | 756cb72d33de658d03c144b1b8e42417142adb81 (diff) | |
download | brdo-e2ed7b8eef8b0f9687767e33c6530b0ab98da5c2.tar.gz brdo-e2ed7b8eef8b0f9687767e33c6530b0ab98da5c2.tar.bz2 |
- Patch #88705 by profix898 and sammys: made version checking work with PostgreSQL. (Critical bug)
-rw-r--r-- | includes/database.mysql.inc | 18 | ||||
-rw-r--r-- | includes/database.mysqli.inc | 21 | ||||
-rw-r--r-- | includes/database.pgsql.inc | 33 |
3 files changed, 48 insertions, 24 deletions
diff --git a/includes/database.mysql.inc b/includes/database.mysql.inc index 262a28c1c..b0ffd2692 100644 --- a/includes/database.mysql.inc +++ b/includes/database.mysql.inc @@ -18,22 +18,32 @@ function db_status_report($phase) { $t = get_t(); - $info = mysql_get_server_info(); + $version = db_version(); + $form['mysql'] = array( 'title' => $t('MySQL database'), - 'value' => ($phase == 'runtime') ? l($info, 'admin/logs/status/sql') : $info, + 'value' => ($phase == 'runtime') ? l($version, 'admin/logs/status/sql') : $version, ); - // Extract version number - list($version) = explode('-', $info); if (version_compare($version, DRUPAL_MINIMUM_MYSQL) < 0) { $form['mysql']['severity'] = REQUIREMENT_ERROR; $form['mysql']['description'] = $t('Your MySQL Server is too old. Drupal requires at least MySQL %version.', array('%version' => DRUPAL_MINIMUM_MYSQL)); } + return $form; } /** + * Returns the version of the database server currently in use. + * + * @return Database server version + */ +function db_version() { + list($version) = explode('-', mysql_get_server_info()); + return $version; +} + +/** * Initialize a database connection. * * Note that you can change the mysql_connect() call to mysql_pconnect() if you diff --git a/includes/database.mysqli.inc b/includes/database.mysqli.inc index dd647165e..7cc5943b7 100644 --- a/includes/database.mysqli.inc +++ b/includes/database.mysqli.inc @@ -19,26 +19,35 @@ * Report database status. */ function db_status_report($phase) { - global $active_db; - $t = get_t(); - $info = mysqli_get_server_info($active_db); + $version = db_version(); + $form['mysql'] = array( 'title' => $t('MySQL database'), - 'value' => ($phase == 'runtime') ? l($info, 'admin/logs/status/sql') : $info, + 'value' => ($phase == 'runtime') ? l($version, 'admin/logs/status/sql') : $version, ); - // Extract version number - list($version) = explode('-', $info); if (version_compare($version, DRUPAL_MINIMUM_MYSQL) < 0) { $form['mysql']['severity'] = REQUIREMENT_ERROR; $form['mysql']['description'] = $t('Your MySQL Server is too old. Drupal requires at least MySQL %version.', array('%version' => DRUPAL_MINIMUM_MYSQL)); } + return $form; } /** + * Returns the version of the database server currently in use. + * + * @return Database server version + */ +function db_version() { + global $active_db; + list($version) = explode('-', mysqli_get_server_info($active_db)); + return $version; +} + +/** * Initialise a database connection. * * Note that mysqli does not support persistent connections. diff --git a/includes/database.pgsql.inc b/includes/database.pgsql.inc index f1500c8e8..b5b53b955 100644 --- a/includes/database.pgsql.inc +++ b/includes/database.pgsql.inc @@ -17,26 +17,31 @@ function db_status_report() { $t = get_t(); - $form['pgsql'] = array(); - - if (function_exists('pg_version')) { - $version = pg_version(); - if (version_compare($version['server'], DRUPAL_MINIMUM_PGSQL) < 0) { - $form['pgsql']['severity'] = REQUIREMENT_ERROR; - $form['pgsql']['description'] = $t('Your PostgreSQL Server is too old. Drupal requires at least PostgreSQL %version.', array('%version' => DRUPAL_MINIMUM_PGSQL)); - } - } - else { - $version = array('server' => $t('Unknown')); - } + $version = db_version(); - $form['pgsql']['title'] = $t('PostgreSQL database'); - $form['pgsql']['value'] = $version['server']; + $form['pgsql'] = array( + 'title' => $t('PostgreSQL database'), + 'value' => $version, + ); + + if (version_compare($version, DRUPAL_MINIMUM_PGSQL) < 0) { + $form['pgsql']['severity'] = REQUIREMENT_ERROR; + $form['pgsql']['description'] = $t('Your PostgreSQL Server is too old. Drupal requires at least PostgreSQL %version.', array('%version' => DRUPAL_MINIMUM_PGSQL)); + } return $form; } /** + * Returns the version of the database server currently in use. + * + * @return Database server version + */ +function db_version() { + return db_result(db_query("SHOW SERVER_VERSION")); +} + +/** * Initialize a database connection. * * Note that you can change the pg_connect() call to pg_pconnect() if you |