Add Database::getSoftwareLink() and Database::getServerVersion(), and use
authorBrion Vibber <brion@users.mediawiki.org>
Wed, 8 Sep 2004 20:36:41 +0000 (20:36 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Wed, 8 Sep 2004 20:36:41 +0000 (20:36 +0000)
those in Special:Version.

Fixes bug 388: Special:Version shows MySQL version when using PostgreSQL
http://bugzilla.wikipedia.org/show_bug.cgi?id=388

includes/Database.php
includes/DatabasePostgreSQL.php
includes/SpecialVersion.php

index 21256c0..c2d8730 100644 (file)
@@ -1196,6 +1196,20 @@ class Database {
                        return new ResultWrapper( $this, $result );
                }
        }
+       
+       /**
+        * @return string wikitext of a link to the server software's web site
+        */
+       function getSoftwareLink() {
+               return "[http://www.mysql.com/ MySQL]";
+       }
+       
+       /**
+        * @return string Version information from the database
+        */
+       function getServerVersion() {
+               return mysql_get_server_info();
+       }
 } 
 
 /**
index b3e74ec..db4c7d8 100644 (file)
@@ -357,18 +357,36 @@ class DatabasePgsql extends Database {
                return false;
        }
 
-        # Return DB-style timestamp used for MySQL schema
-        function timestamp( $ts=0 ) {
-                return wfTimestamp(TS_DB,$ts);
-        }
-
-        function reportQueryError( $error, $errno, $sql, $fname, $tempIgnore = false ) {
-               $message = "A database error has occurred\n" .
-                                  "Query: $sql\n" .
-                                  "Function: $fname\n" .
-                                  "Error: $errno $error\n";
+       # Return DB-style timestamp used for MySQL schema
+       function timestamp( $ts=0 ) {
+               return wfTimestamp(TS_DB,$ts);
+       }
+
+       function reportQueryError( $error, $errno, $sql, $fname, $tempIgnore = false ) {
+               $message = "A database error has occurred\n" .
+                       "Query: $sql\n" .
+                       "Function: $fname\n" .
+                       "Error: $errno $error\n";
                wfDebugDieBacktrace($message);
        }
+
+       /**
+        * @return string wikitext of a link to the server software's web site
+        */
+       function getSoftwareLink() {
+               return "[http://www.postgresql.org/ PostgreSQL]";
+       }
+       
+       /**
+        * @return string Version information from the database
+        */
+       function getServerVersion() {
+               $res = $this->query( "SELECT version()" );
+               $row = $this->fetchRow( $res );
+               $version = $row[0];
+               $this->freeResult( $res );
+               return $version;
+       }
 }
 
 /**
index 47fe886..30f2fe1 100644 (file)
@@ -42,9 +42,12 @@ function wfSpecialVersion() {
        }
        $versions = array(
                "[http://wikipedia.sf.net/ MediaWiki]" => $wgVersion,
-               "[http://www.php.net/ PHP]" => phpversion() . " (" . php_sapi_name() . ")",
-               "[http://www.mysql.com/ MySQL]" => mysql_get_server_info()
+               "[http://www.php.net/ PHP]" => phpversion() . " (" . php_sapi_name() . ")"
        );
+       
+       $dbr =& wfGetDB( DB_SLAVE );
+       $dblink = $dbr->getSoftwareLink();
+       $versions[$dblink] = $dbr->getServerVersion();
        
        $out = '';
        foreach( $versions as $module => $ver ) {