]> source.dussan.org Git - nextcloud-server.git/commitdiff
only create one connection to a sqlite3 database, fixes 'Database locked' errors...
authorRobin Appelman <icewind1991@gmail.com>
Fri, 17 Jun 2011 14:09:43 +0000 (16:09 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Fri, 17 Jun 2011 14:09:43 +0000 (16:09 +0200)
lib/MDB2/Driver/sqlite3.php

index abd2b16ad4bf057ce9e657f998fa52cad205eb78..a569da187aa40ad4be1cce15191c1da292baa895 100644 (file)
@@ -348,6 +348,9 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common
      **/
     function connect()
     {
+               if($this->connection instanceof SQLite3){
+                       return MDB2_OK;
+               }
                global $SERVERROOT;
                $datadir=OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
         $database_file = $this->_getDatabaseFile($this->database_name);
@@ -409,6 +412,7 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common
 
         $php_errormsg = '';
                $this->connection = new SQLite3($database_file);
+               $this->connection->busyTimeout(100);
         $this->_lasterror = $this->connection->lastErrorMsg();
         if (!$this->connection) {
             return $this->raiseError(MDB2_ERROR_CONNECT_FAILED, null, null,
@@ -1346,6 +1350,10 @@ class MDB2_Statement_sqlite3 extends MDB2_Statement_Common
         $result =$this->_execute($result_class, $result_wrap_class);
         return $result;
     }
+
+    function __destruct() {
+               $this->free();
+    }
 }
 
 ?>
\ No newline at end of file