Browse Source

Reduce scope of changes in previous commit.

Revert some behavior for buffered queries as we don't want to close off
the cursor for bufferred queries.
Mark Story 11 years ago
parent
commit
7e0cfa9c46

+ 4 - 1
src/ORM/ResultSet.php

@@ -224,6 +224,9 @@ class ResultSet implements ResultSetInterface
                 $this->_current = $this->_results[$this->_index];
                 return true;
             }
+            if (!$valid) {
+                return $valid;
+            }
         }
 
         $this->_current = $this->_fetchResult();
@@ -249,7 +252,7 @@ class ResultSet implements ResultSetInterface
     public function first()
     {
         foreach ($this as $result) {
-            if ($this->_statement) {
+            if ($this->_statement && !$this->_useBuffering) {
                 $this->_statement->closeCursor();
             }
             return $result;

+ 1 - 1
tests/TestCase/ORM/QueryRegressionTest.php

@@ -598,7 +598,7 @@ class QueryRegressionTest extends TestCase
         $results = TableRegistry::get('Articles')->find()->all();
         $this->assertEquals(3, $results->count());
         $this->assertNotNull($results->first());
-        $this->assertCount(1, $results->toArray());
+        $this->assertCount(3, $results->toArray());
     }
 
     /**

+ 2 - 2
tests/TestCase/ORM/QueryTest.php

@@ -997,9 +997,9 @@ class QueryTest extends TestCase
             '\Database\StatementInterface',
             ['fetch', 'closeCursor', 'rowCount']
         );
-        $statement->expects($this->exactly(3))
+        $statement->expects($this->exactly(2))
             ->method('fetch')
-            ->will($this->onConsecutiveCalls(['a' => 1], ['a' => 2], false));
+            ->will($this->onConsecutiveCalls(['a' => 1], ['a' => 2]));
 
         $statement->expects($this->once())
             ->method('rowCount')