Robert Douglass wrote:
- The new database system (DBTNG) now supports pager and tablesort queries via "extenders," which means that we can now work on converting pretty much all of Drupal core queries to DBTNG. Feel free to pick off an issue from http://drupal.org/project/issues/3060/term/131 if you'd like to get a head start on learning this essential part of Drupal.
Can these extenders be used to make pagers that *DON'T* do a pager query, but just go to the next chunk until there isn't any? The reason I ask is that the current pager system barfs with millions of nodes. Queries like "SELECT COUNT(*) FROM node WHERE status = 1 AND promoted = 1" take enormous amounts of time to execute with millions of nodes, but are a part of every q=node front page. There are other examples.
That is exactly the goal. Right now the PagerDefault extender is a direct port of the existing procedural code, and therefore is horrifically bad and uses global variables that are undocumented and have completely obscure names that I cannot follow. Someone not named Crell needs to fix that, hopefully. :-) But yes, the idea was exactly to allow alternate paging mechanisms, at least for the query level itself. The pager UI part is, unfortunately, rather tied to that, and still needs refactoring. Again, someone who is not me needs to own that, and maybe even throw a new pager type or two into core. (I'd be totally cool with that!) --Larry Garfield