From ea95bd57ef7a52b526bd62ac6db80fcdc719a068 Mon Sep 17 00:00:00 2001 From: Benjamin Eberlei Date: Sun, 5 Feb 2012 22:54:28 +0100 Subject: [PATCH] Rework a bit --- en/tutorials/pagination.rst | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/en/tutorials/pagination.rst b/en/tutorials/pagination.rst index bb402fc87..63e50e6c5 100644 --- a/en/tutorials/pagination.rst +++ b/en/tutorials/pagination.rst @@ -5,23 +5,6 @@ Starting with version 2.2 Doctrine ships with a Paginator for DQL queries. It has a very simple API and implements the SPL interfaces ``Countable`` and ``IteratorAggregate``. -Paginating Doctrine queries is not as simple as you might think in the -beginning. If you have complex fetch-join scenarios with one-to-many or -many-to-many associations using the "default" LIMIT functionality of database -vendors is not sufficient to get the correct results. - -By default the pagination extension does the following steps to compute the -correct result: - -- Perform a Count query using `DISTINCT` keyword. -- Perform a Limit Subquery with `DISTINCT` to find all ids of the entity in from on the current page. -- Perform a WHERE IN query to get all results for the current page. - -This behavior is only necessary if you actually fetch join a to-many -collection. You can disable this behavior by setting the -``$fetchJoinCollection`` flag of. We hope to automate the detection for this in -the future. - .. code-block:: php getHeadline() . "\n"; } + +Paginating Doctrine queries is not as simple as you might think in the +beginning. If you have complex fetch-join scenarios with one-to-many or +many-to-many associations using the "default" LIMIT functionality of database +vendors is not sufficient to get the correct results. + +By default the pagination extension does the following steps to compute the +correct result: + +- Perform a Count query using `DISTINCT` keyword. +- Perform a Limit Subquery with `DISTINCT` to find all ids of the entity in from on the current page. +- Perform a WHERE IN query to get all results for the current page. + +This behavior is only necessary if you actually fetch join a to-many +collection. You can disable this behavior by setting the +``$fetchJoinCollection`` flag of, in that case only 2 instead of the 3 queries +described are executed. We hope to automate the detection for this in +the future.