]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-17036 dml: dbpersist moved into dboptions
authorskodak <skodak>
Mon, 27 Oct 2008 22:21:34 +0000 (22:21 +0000)
committerskodak <skodak>
Mon, 27 Oct 2008 22:21:34 +0000 (22:21 +0000)
16 files changed:
admin/cliupgrade.php
admin/report/unittest/dbtest.php
admin/report/unittest/index.php
install.php
lib/dml/adodb_moodle_database.php
lib/dml/moodle_database.php
lib/dml/mssql_adodb_moodle_database.php
lib/dml/mysqli_native_moodle_database.php
lib/dml/oci8po_adodb_moodle_database.php
lib/dml/pdo_moodle_database.php
lib/dml/pgsql_native_moodle_database.php
lib/dml/postgres7_adodb_moodle_database.php
lib/dml/simpletest/testdml.php
lib/dmllib.php
lib/simpletest/testeventslib.php
lib/simpletestlib.php

index 99db2d4789e8bcd72cb393012c40ad7790251194..a4c81aa7c2b296828ea3d335da936bc3e4251792 100644 (file)
@@ -599,7 +599,7 @@ if (!file_exists(dirname(dirname(__FILE__)) . '/config.php')) {
     $str .= "\r\n";
 
     $database = $databases[$CONFFILE['dbtype']];
-    $dbconfig = $database->export_dbconfig($CONFFILE['dbhost'], $CONFFILE['dbuser'], $CONFFILE['dbpass'], $CONFFILE['dbname'], false, $CONFFILE['prefix']);
+    $dbconfig = $database->export_dbconfig($CONFFILE['dbhost'], $CONFFILE['dbuser'], $CONFFILE['dbpass'], $CONFFILE['dbname'], $CONFFILE['prefix']);
 
     foreach ($dbconfig as $key=>$value) {
         $key = str_pad($key, 9);
index 4d8c4246ef3252e0e572f08ad550d40720f18f73..506b9d005134360475cc5dd26e8a641d84016b5c 100644 (file)
@@ -44,7 +44,7 @@ for ($i=1; $i<=10; $i++) {
     if (!isset($CFG->$name)) {
         continue;
     }
-    list($library, $driver, $dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions) = $CFG->$name;
+    list($library, $driver, $dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions) = $CFG->$name;
     $dbinfos[$i] = array('name'=>"External database $i ($library/$driver/$dbhost/$dbname/$prefix)", 'installed'=>false, 'configured'=>false);
 
     $classname = "{$driver}_{$library}_moodle_database";
@@ -55,7 +55,7 @@ for ($i=1; $i<=10; $i++) {
     }
     $dbinfos[$i]['installed'] = true;
 
-    if ($d->connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions)) {
+    if ($d->connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions)) {
         $dbinfos[$i]['configured'] = true;
         if (data_submitted() and !empty($selected[$i])) {
             $tests[$i] = $d;
@@ -123,10 +123,10 @@ foreach ($dbinfos as $i=>$dbinfo) {
 echo '</ul></p>';
 echo '<p>External databases are configured in config.php, add lines:
 <pre>
-$CFG->func_test_db_1 = array("adodb", "postgres7", "localhost", "moodleuser", "password", "moodle", false, "test", null);
-$CFG->func_test_db_2 = array("adodb", "mssql", "localhost", "moodleuser", "password", "moodle", false, "test", null);
+$CFG->func_test_db_1 = array("adodb", "postgres7", "localhost", "moodleuser", "password", "moodle", "test", null);
+$CFG->func_test_db_2 = array("adodb", "mssql", "localhost", "moodleuser", "password", "moodle", "test", null);
 </pre>
-where order of parameters is: dblibrary, dbtype, dbhost, dbuser, dbpass, dbname, dbpersist, prefix, dboptions
+where order of parameters is: dblibrary, dbtype, dbhost, dbuser, dbpass, dbname, prefix, dboptions
 </p>';
 echo '<p><input type="submit" value="' . get_string('runtests', 'simpletest') . '" /></p>';
 echo '</div>';
index a1003df154945beaf578ef6ec197327f0d2dec03..10adcfd6b9b368adb8b924eb7ec7aaadf0099cdb 100644 (file)
@@ -115,7 +115,6 @@ $CFG->dblibrary           = $real_cfg->dblibrary;
 $CFG->dbuser              = $real_cfg->dbuser;
 $CFG->dbpass              = $real_cfg->dbpass;
 $CFG->dbname              = $real_cfg->dbname;
-$CFG->dbpersist           = $real_cfg->dbpersist;
 $CFG->unittestprefix      = $real_cfg->unittestprefix;
 $CFG->wwwroot             = $real_cfg->wwwroot;
 $CFG->dirroot             = $real_cfg->dirroot;
@@ -131,7 +130,7 @@ $CFG->footer              = $real_cfg->footer;
 $CFG->debug               = $real_cfg->debug;
 
 $DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
-$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->unittestprefix);
+$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->unittestprefix);
 
 if ($DB->get_manager()->table_exists(new xmldb_table('config')) && $config = $DB->get_records('config')) {
     foreach ($config as $conf) {
index f2028a253a49527294f709e75e48310a4bde87d1..60e5a30c2f950e63cf0c7242cc38618e13ec4b61 100644 (file)
@@ -465,7 +465,7 @@ if ($nextstage == SAVE) {
     $str .= "\r\n";
 
     $DB = $databases[$INSTALL['dbtype']];
-    $dbconfig = $DB->export_dbconfig($INSTALL['dbhost'], $INSTALL['dbuser'], $INSTALL['dbpass'], $INSTALL['dbname'], false, $INSTALL['prefix']);
+    $dbconfig = $DB->export_dbconfig($INSTALL['dbhost'], $INSTALL['dbuser'], $INSTALL['dbpass'], $INSTALL['dbname'], $INSTALL['prefix']);
 
     foreach ($dbconfig as $key=>$value) {
         $key = str_pad($key, 9);
index 8117853dffd6145e21c2b8015e5e7197f20e2de4..e8898aa687b6967bd0fc6cb9d7bce789a03291fe 100644 (file)
@@ -35,10 +35,10 @@ abstract class adodb_moodle_database extends moodle_database {
      */
     protected abstract function preconfigure_dbconnection();
 
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         global $CFG;
 
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         $this->preconfigure_dbconnection();
 
@@ -50,7 +50,7 @@ abstract class adodb_moodle_database extends moodle_database {
         // we probably want to change this value to ''.
         $this->adodb->null2null = 'A long random string that will never, ever match something we want to insert into the database, I hope. \'';
 
-        if (!isset($this->dbpersist) or !empty($this->dbpersist)) {    // Use persistent connection (default)
+        if (!empty($this->dboptions['dbpersist'])) {    // Use persistent connection
             if (!$this->adodb->PConnect($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname)) {
                 return false;
             }
index cedb15eacefd0a2a78acad1fda434183dbae9db8..b569c196ceebbdad8bbb4da4207ca96ea2248d20 100644 (file)
@@ -36,7 +36,6 @@ abstract class moodle_database {
     protected $dbuser;
     protected $dbpass;
     protected $dbname;
-    protected $dbpersist;
     protected $prefix;
 
     /**
@@ -146,8 +145,8 @@ abstract class moodle_database {
      * Note: can be used before connect()
      * @return string
      */
-    public function export_dbconfig($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+    public function export_dbconfig($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         $cfg = new stdClass();
         $cfg->dbtype    = $this->get_dbtype();
@@ -171,12 +170,11 @@ abstract class moodle_database {
      * @param string $dbuser
      * @param string $dbpass
      * @param string $dbname
-     * @param bool $dbpersist
      * @param mixed $prefix string means moodle db prefix, false used for external databases where prefix not used
      * @param array $dboptions driver specific options
      * @return bool success
      */
-    public abstract function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null);
+    public abstract function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null);
 
     /**
      * Store various database settings
@@ -184,17 +182,15 @@ abstract class moodle_database {
      * @param string $dbuser
      * @param string $dbpass
      * @param string $dbname
-     * @param bool $dbpersist
      * @param mixed $prefix string means moodle db prefix, false used for external databases where prefix not used
      * @param array $dboptions driver specific options
      * @return void
      */
-    protected function store_settings($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    protected function store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         $this->dbhost    = $dbhost;
         $this->dbuser    = $dbuser;
         $this->dbpass    = $dbpass;
         $this->dbname    = $dbname;
-        $this->dbpersist = $dbpersist;
         $this->prefix    = $prefix;
         $this->dboptions = (array)$dboptions;
     }
index e3157164d65ea12b82f752e60dc284dfba4c66e7..bfb6886a8a9b128b962cc71bb96511e5c0ea6b52 100644 (file)
@@ -13,12 +13,12 @@ class mssql_adodb_moodle_database extends adodb_moodle_database {
      */
     public $temptables;
 
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         if ($prefix == '' and !$this->external) {
             //Enforce prefixes for everybody but mysql
             throw new dml_exception('prefixcannotbeempty', $this->get_dbfamily());
         }
-        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
     }
 
     /**
index 1f95cf265cf5f017225f71f5ddd18318058fbe3a..7c3696ba73974a92b923b076382d5d493b997325 100644 (file)
@@ -76,15 +76,14 @@ class mysqli_native_moodle_database extends moodle_database {
      * @param string $dbuser
      * @param string $dbpass
      * @param string $dbname
-     * @param bool $dbpersist
      * @param mixed $prefix string means moodle db prefix, false used for external databases where prefix not used
      * @param array $dboptions driver specific options
      * @return bool success
      */
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         global $CFG;
 
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, false, $prefix, $dboptions);
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         $this->mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
         if ($this->mysqli->connect_error) {
index 77dcbbb18439310b1c2f826343b08bbb2340096a..73d8ee295b04cb8fd9e01048a94bf1f025a42530 100644 (file)
@@ -10,7 +10,7 @@ require_once($CFG->libdir.'/dml/oci8po_adodb_moodle_recordset.php');
  */
 class oci8po_adodb_moodle_database extends adodb_moodle_database {
 
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         if ($prefix == '' and !$this->external) {
             //Enforce prefixes for everybody but mysql
             throw new dml_exception('prefixcannotbeempty', $this->get_dbfamily());
@@ -20,7 +20,7 @@ class oci8po_adodb_moodle_database extends adodb_moodle_database {
             $a = (object)array('dbfamily'=>'oracle', 'maxlength'=>2);
             throw new dml_exception('prefixtoolong', $a);
         }
-        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
     }
 
     /**
index 4cc0c9ecf994ef6f5f4b129da79bff559dce587f..ace30423ef14d5863228167707a61a0c4888bf49 100644 (file)
@@ -29,13 +29,12 @@ abstract class pdo_moodle_database extends moodle_database {
      * @param string $dbuser
      * @param string $dbpass
      * @param string $dbname
-     * @param bool $dbpersist
      * @param mixed $prefix string means moodle db prefix, false used for external databases where prefix not used
      * @param array $dboptions driver specific options
      * @return bool success
      */
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         try {
             $this->pdb = new PDO($this->get_dsn(), $this->dbuser, $this->dbpass, $this->get_pdooptions());
@@ -64,7 +63,7 @@ abstract class pdo_moodle_database extends moodle_database {
      * @return array A key=>value array of PDO driver-specific connection options
      */
     protected function get_pdooptions() {
-        return array(PDO::ATTR_PERSISTENT => $this->dbpersist);
+        return array(PDO::ATTR_PERSISTENT => !empty($this->dboptions['dbpersist']));
     }
 
     protected function configure_dbconnection() {
index 94b3d07ec3f207d404a7974eacd4e0652061bb5c..e0634b8107218732f40ce4ed586d774e8a9e999a 100644 (file)
@@ -77,15 +77,14 @@ class pgsql_native_moodle_database extends moodle_database {
      * @param string $dbuser
      * @param string $dbpass
      * @param string $dbname
-     * @param bool $dbpersist
      * @param mixed $prefix string means moodle db prefix, false used for external databases where prefix not used
      * @param array $dboptions driver specific options
      * @return bool success
      */
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         global $CFG;
 
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, false, $prefix, $dboptions);
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         //TODO: handle both port and socket connection
         $this->pgsql = pg_connect("host='{$this->dbhost}' user='{$this->dbuser}' password='{$this->dbpass}' dbname='{$this->dbname}'");
index d11f9f4a86f0bebb2b7e53c6c2d362ffe0bd2521..2e2a17ec5e0daa76930623c1fe5d5073e9c53c68 100644 (file)
@@ -9,12 +9,12 @@ require_once($CFG->libdir.'/dml/adodb_moodle_database.php');
  */
 class postgres7_adodb_moodle_database extends adodb_moodle_database {
 
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
         if ($prefix == '' and !$this->external) {
             //Enforce prefixes for everybody but mysql
             throw new dml_exception('prefixcannotbeempty', $this->get_dbfamily());
         }
-        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+        return parent::connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
     }
 
     /**
@@ -72,8 +72,8 @@ class postgres7_adodb_moodle_database extends adodb_moodle_database {
      * Note: can be used before connect()
      * @return string
      */
-    public function export_dbconfig($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null) {
-        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, $dboptions);
+    public function export_dbconfig($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null) {
+        $this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
 
         $cfg = new stdClass();
         $cfg->dbtype     = $this->get_dbtype();
index 3be5bad67c92864c3fbea30042ce59ad80335e4a..935a1f223513631a12eca4da8135b8acd48498ad 100755 (executable)
@@ -1477,7 +1477,7 @@ class moodle_database_for_testing extends moodle_database {
     protected function get_dblibrary(){}
     public function get_name(){}
     public function get_configuration_hints(){}
-    public function connect($dbhost, $dbuser, $dbpass, $dbname, $dbpersist, $prefix, array $dboptions=null){}
+    public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dboptions=null){}
     public function get_server_info(){}
     protected function allowed_param_types(){}
     public function get_last_error(){}
index cf876d88ca990dac294d842fc75b1a9d5109ed2b..d53f52740d3e974d5034f51b862a1e231560ebb0 100644 (file)
@@ -69,10 +69,6 @@ function setup_DB() {
         $CFG->dbname = '';
     }
 
-    if (!isset($CFG->dbpersist)) {
-        $CFG->dbpersist = false;
-    }
-
     if (!isset($CFG->dblibrary)) {
         $CFG->dblibrary = 'adodb';
     }
@@ -81,6 +77,11 @@ function setup_DB() {
         $CFG->dboptions = array();
     }
 
+    if (isset($CFG->dbpersist)) {
+        $CFG->dboptions['dbpersist'] = $CFG->dbpersist;
+    }
+
+
     $DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
 
     $CFG->dbfamily = $DB->get_dbfamily(); // TODO: BC only for now
@@ -97,7 +98,7 @@ function setup_DB() {
     } else {
         $prevdebug = error_reporting(0);
     }
-    if (!$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->prefix, $CFG->dboptions)) {
+    if (!$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, $CFG->dboptions)) {
         if (debugging('', DEBUG_ALL)) {
             if ($dberr = ob_get_contents()) {
                 $dberr = '<p><em>'.$dberr.'</em></p>';
index 5eddc25e14bdb1814663942b072c78e383ace63a..679c6d3464991de8044c8934a47243fec126b3a8 100755 (executable)
@@ -89,7 +89,7 @@ class eventslib_test extends MoodleUnitTestCase {
         if (is_null($DB)) {
             $this->realdb = $DB;
             $DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
-            $DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->prefix);
+            $DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix);
         }
 
         events_uninstall('unittest');
index 814b7beb765a805bb5d0d7082a7bfa36ed52d7b9..a75031b16432c9b27e2d6b85af237590a09cb89d 100644 (file)
@@ -308,7 +308,7 @@ class UnitTestDB {
 
         if (empty(UnitTestDB::$DB)) {
             UnitTestDB::$DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
-            UnitTestDB::$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->unittestprefix);
+            UnitTestDB::$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->unittestprefix);
         }
 
         $manager = UnitTestDB::$DB->get_manager();