]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix fetchRow checks to also work with MDB2
authorJörn Friedrich Dreyer <jfd@butonic.de>
Mon, 10 Jun 2013 09:07:41 +0000 (11:07 +0200)
committerJörn Friedrich Dreyer <jfd@butonic.de>
Fri, 14 Jun 2013 11:05:33 +0000 (13:05 +0200)
lib/files/cache/cache.php
tests/lib/db.php

index 4f1f8b6fbc1a0daaac862049cb0ac7bbac7d86c3..2890049826b5a1c28c38f720c303be9890c3240c 100644 (file)
@@ -106,7 +106,7 @@ class Cache {
         * get the stored metadata of a file or folder
         *
         * @param string/int $file
-        * @return array
+        * @return array | false
         */
        public function get($file) {
                if (is_string($file) or $file == '') {
@@ -122,6 +122,12 @@ class Cache {
                $result = $query->execute($params);
                $data = $result->fetchRow();
 
+               //FIXME hide this HACK in the next database layer, or just use doctrine and get rid of MDB2 and PDO
+               //PDO returns false, MDB2 returns null, oracle always uses MDB2, so convert null to false
+               if ($data === null) {
+                       $data = false;
+               }
+
                //merge partial data
                if (!$data and  is_string($file)) {
                        if (isset($this->partial[$file])) {
index 7b2a5e309f0151f1588bcf207f42ec1c3bdf4438..df39092997855df7e4149c46afdfe11c29ba4930 100644 (file)
@@ -37,7 +37,7 @@ class Test_DB extends PHPUnit_Framework_TestCase {
                $result = $query->execute(array('uri_1'));
                $this->assertTrue((bool)$result);
                $row = $result->fetchRow();
-               $this->assertFalse($row);
+               $this->assertFalse((bool)$row); //PDO returns false, MDB2 returns null
                $query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`,`uri`) VALUES (?,?)');
                $result = $query->execute(array('fullname test', 'uri_1'));
                $this->assertTrue((bool)$result);
@@ -48,7 +48,7 @@ class Test_DB extends PHPUnit_Framework_TestCase {
                $this->assertArrayHasKey('fullname', $row);
                $this->assertEquals($row['fullname'], 'fullname test');
                $row = $result->fetchRow();
-               $this->assertFalse($row);
+               $this->assertFalse((bool)$row); //PDO returns false, MDB2 returns null
        }
 
        public function testNOW() {