Per r83812 CR, solve the categorymembers paging problem by doing separate queries...
authorRoan Kattouw <catrope@users.mediawiki.org>
Sun, 20 Mar 2011 16:25:01 +0000 (16:25 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Sun, 20 Mar 2011 16:25:01 +0000 (16:25 +0000)
commita6c758a39a00765529e7e23a324c0d6b20ee85ce
treec0bdc8556b84a2a08bd56e0d0837188fbb99d904
parent5da14533aa65dd3632f0821928faf8e4c4d88cc0
Per r83812 CR, solve the categorymembers paging problem by doing separate queries for each value of cl_type, with some trickery to make paging work. This makes the enum->varchar schema change for cl_type unnecessary, so I'll revert that.

Code was largely copied from Tim's CR comment on r83812 but adapted to deal with the fact that we have to apply the cmcontinue-induced WHERE on cl_sortkey and cl_from only for the first query. Because ApiQueryBase doesn't let us unset or overwrite conditions like these in a nice way, I added an $extraQuery parameter to ApiQueryBase::select() that excepts additional query parameters that are only applied to that query but not stored in the object.
includes/api/ApiQueryBase.php
includes/api/ApiQueryCategoryMembers.php