Merge "RevisionStoreDbTestBase, remove redundant needsDB override"
[lhc/web/wiklou.git] / includes / libs / rdbms / database / DatabaseSqlite.php
index b0fd12a..c8edc39 100644 (file)
@@ -155,24 +155,14 @@ class DatabaseSqlite extends Database {
                return false;
        }
 
-       /** Open an SQLite database and return a resource handle to it
-        *  NOTE: only $dbName is used, the other parameters are irrelevant for SQLite databases
-        *
-        * @param string $server
-        * @param string $user Unused
-        * @param string $pass
-        * @param string $dbName
-        *
-        * @throws DBConnectionError
-        * @return bool
-        */
-       function open( $server, $user, $pass, $dbName ) {
+       protected function open( $server, $user, $pass, $dbName ) {
                $this->close();
                $fileName = self::generateFileName( $this->dbDir, $dbName );
                if ( !is_readable( $fileName ) ) {
                        $this->conn = false;
                        throw new DBConnectionError( $this, "SQLite database not accessible" );
                }
+               // Only $dbName is used, the other parameters are irrelevant for SQLite databases
                $this->openFile( $fileName, $dbName );
 
                return (bool)$this->conn;
@@ -399,13 +389,14 @@ class DatabaseSqlite extends Database {
        /**
         * The PDO::Statement class implements the array interface so count() will work
         *
-        * @param ResultWrapper|array $res
+        * @param ResultWrapper|array|false $res
         * @return int
         */
        function numRows( $res ) {
+               // false does not implement Countable
                $r = $res instanceof ResultWrapper ? $res->result : $res;
 
-               return count( $r );
+               return is_array( $r ) ? count( $r ) : 0;
        }
 
        /**
@@ -983,7 +974,9 @@ class DatabaseSqlite extends Database {
                }
                $sql = $obj->sql;
                $sql = preg_replace(
-                       '/(?<=\W)"?' . preg_quote( trim( $this->addIdentifierQuotes( $oldName ), '"' ) ) . '"?(?=\W)/',
+                       '/(?<=\W)"?' .
+                               preg_quote( trim( $this->addIdentifierQuotes( $oldName ), '"' ), '/' ) .
+                               '"?(?=\W)/',
                        $this->addIdentifierQuotes( $newName ),
                        $sql,
                        1