dumpBackup should instantiate correct database class for db type
authorRiver Tarnell <river@users.mediawiki.org>
Fri, 9 Mar 2007 02:04:36 +0000 (02:04 +0000)
committerRiver Tarnell <river@users.mediawiki.org>
Fri, 9 Mar 2007 02:04:36 +0000 (02:04 +0000)
add set_timeout() method to Database

includes/Database.php
includes/DatabasePostgres.php
maintenance/backup.inc

index d51553f..96dcc1b 100644 (file)
@@ -1967,6 +1967,11 @@ class Database {
                return $b;
        }
 
+       function set_timeout($timeout) {
+               $this->query( "SET net_read_timeout=$timeout" );
+               $this->query( "SET net_write_timeout=$timeout" );
+       }
+
        /**
         * Read and execute SQL commands from a file.
         * Returns true on success, error string on failure
index e479a6a..b55cbc1 100644 (file)
@@ -937,6 +937,9 @@ class DatabasePostgres extends Database {
                return array( $startOpts, $useIndex, $tailOpts );
        }
 
+       function set_timeout($timeout) {
+       }
+
        function ping() {
                wfDebug( "Function ping() not written for DatabasePostgres.php yet");
                return true;
index 2c3ce6b..b770c5c 100644 (file)
@@ -216,12 +216,13 @@ class BackupDumper {
 
        function &backupDb() {
                global $wgDBadminuser, $wgDBadminpassword;
-               global $wgDBname, $wgDebugDumpSql;
+               global $wgDBname, $wgDebugDumpSql, $wgDBtype;
                $flags = ($wgDebugDumpSql ? DBO_DEBUG : 0) | DBO_DEFAULT; // god-damn hack
-               $db = new Database( $this->backupServer(), $wgDBadminuser, $wgDBadminpassword, $wgDBname, false, $flags );
+
+               $class = 'Database' . ucfirst($wgDBtype);
+               $db = new $class( $this->backupServer(), $wgDBadminuser, $wgDBadminpassword, $wgDBname, false, $flags );
                $timeout = 3600 * 24;
-               $db->query( "SET net_read_timeout=$timeout" );
-               $db->query( "SET net_write_timeout=$timeout" );
+               $db->set_timeout($timeout);
                return $db;
        }