[BUGFIX] Introduce exception for using offset without limit
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Persistence / Generic / Storage / Typo3DbBackend.php
index 5a41de2..d881904 100755 (executable)
@@ -358,10 +358,17 @@ class Typo3DbBackend implements BackendInterface, \TYPO3\CMS\Core\SingletonInter
      * that came from a parsed query.
      *
      * @param array $statementParts
+     * @throws \InvalidArgumentException
      * @return array
      */
     protected function createQueryCommandParametersFromStatementParts(array $statementParts)
     {
+        if (isset($statementParts['offset']) && !isset($statementParts['limit'])) {
+            throw new \InvalidArgumentException(
+                'Trying to make query with offset and no limit, the offset would become a limit. You have to set a limit to use offset. To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the limit.',
+                1465223252
+            );
+        }
         return array(
             'selectFields' => implode(' ', $statementParts['keywords']) . ' ' . implode(',', $statementParts['fields']),
             'fromTable'    => implode(' ', $statementParts['tables']) . ' ' . implode(' ', $statementParts['unions']),