<?php /** * Copyright © 2024 ExacTI Technology Solutions. All rights reserved. * GPLv3 General License. * https://exacti.com.br * Phacil PHP Framework - https://github.com/exacti/phacil-framework */ namespace Phacil\Framework\MagiQL\Builder\Syntax\Adapt\Oracle; use Phacil\Framework\MagiQL\Builder\Syntax\SelectWriter as GenericSelectWriter; use Phacil\Framework\MagiQL\Manipulation\Select; class SelectWriter extends GenericSelectWriter { /** * @param Select $select * @param array $parts * * @return $this */ protected function writeSelectLimit(Select $select, array &$parts) { $mask = $this->getStartingLimit($select) . $this->getLimitCount($select); $limit = ''; if ($mask !== '00') { $start = $this->placeholderWriter->add($select->getLimitStart()); $count = $this->placeholderWriter->add($select->getLimitCount()); //$limit = "LIMIT {$start}, {$count}"; $limit = "OFFSET {$start} ROWS FETCH NEXT {$count} ROWS ONLY"; } $parts = \array_merge($parts, [$limit]); return $this; } }