DQL (Doctrine Query Language) - LIMIT and OFFSET clauses - Driver portability.php 788 Bytes
Newer Older
hansbrix's avatar
hansbrix committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
DQL LIMIT clause is portable on all supported databases. Special attention have been paid to following facts:



*   Only Mysql, Pgsql and Sqlite implement LIMIT / OFFSET clauses natively



*   In Oracle / Mssql / Firebird LIMIT / OFFSET clauses need to be emulated in driver specific way



*  The limit-subquery-algorithm needs to execute to subquery separately in mysql, since mysql doesn't yet support
LIMIT clause in subqueries


*  Pgsql needs the order by fields to be preserved in SELECT clause, hence LS-algorithm needs to take this into consideration
when pgsql driver is used


*  Oracle only allows < 30 object identifiers (= table/column names/aliases), hence the limit subquery must use as short aliases as possible
and it must avoid alias collisions with the main query.
23