Browse Source

Add Cake\Database\Query::disableBufferedResults().

ADmad 7 years ago
parent
commit
631e7df6a5
2 changed files with 18 additions and 2 deletions
  1. 16 0
      src/Database/Query.php
  2. 2 2
      src/ORM/Behavior/TranslateBehavior.php

+ 16 - 0
src/Database/Query.php

@@ -2070,6 +2070,22 @@ class Query implements ExpressionInterface, IteratorAggregate
     }
 
     /**
+     * Disables buffered results.
+     *
+     * Disabling buffering will consume less memory as fetched results are not
+     * remembered for future iterations.
+     *
+     * @return $this
+     */
+    public function disableBufferedResults()
+    {
+        $this->_dirty();
+        $this->_useBufferedResults = false;
+
+        return $this;
+    }
+
+    /**
      * Returns whether buffered results are enabled/disabled.
      *
      * When enabled the results returned by this Query will be

+ 2 - 2
src/ORM/Behavior/TranslateBehavior.php

@@ -334,7 +334,7 @@ class TranslateBehavior extends Behavior implements PropertyMarshalInterface
                 'foreign_key' => $key,
                 'model' => $model
             ])
-            ->enableBufferedResults(false)
+            ->disableBufferedResults()
             ->all()
             ->indexBy('field');
 
@@ -753,7 +753,7 @@ class TranslateBehavior extends Behavior implements PropertyMarshalInterface
             ->select(['id', 'num' => 0])
             ->where(current($ruleSet))
             ->disableHydration()
-            ->enableBufferedResults(false);
+            ->disableBufferedResults();
 
         unset($ruleSet[0]);
         foreach ($ruleSet as $i => $conditions) {