<?php namespace Doctrine\DBAL\Platforms; use Doctrine\DBAL\Exception; use function sprintf; /** * Provides the behavior, features and SQL dialect of the IBM DB2 11.1 (11.1 GA) database platform. * * @deprecated This class will be merged with {@see DB2Platform} in 4.0 because support for IBM DB2 * releases prior to 11.1 will be dropped. * * @see https://www.ibm.com/docs/en/db2/11.1?topic=database-whats-new-db2-version-111-ga */ class DB2111Platform extends DB2Platform { /** * {@inheritDoc} * * @see https://www.ibm.com/docs/en/db2/11.1?topic=subselect-fetch-clause */ protected function doModifyLimitQuery($query, $limit, $offset) { if ($offset > 0) { $query .= sprintf(' OFFSET %u ROWS', $offset); } if ($limit !== null) { if ($limit < 0) { throw new Exception(sprintf('Limit must be a positive integer or zero, %d given', $limit)); } $query .= sprintf(' FETCH %s %u ROWS ONLY', $offset === 0 ? 'FIRST' : 'NEXT', $limit); } return $query; } }