RC Filters: Detect filters conflicts to by-pass db query
authorStephane Bisson <sbisson@wikimedia.org>
Mon, 10 Apr 2017 17:23:45 +0000 (13:23 -0400)
committerMatthew Flaschen <mflaschen@wikimedia.org>
Wed, 19 Apr 2017 02:49:58 +0000 (22:49 -0400)
commit93cbb2450c54935fe63df7946b076faeaf399c6b
tree9c1fe718fc29b6a29b294bd90b4b530e087fd38b
parentc3a61a2748c2822a0d6cb89332e0bed1d73a64e1
RC Filters: Detect filters conflicts to by-pass db query

Filters are in conflict when their combination is guaranteed
to return no results. For instance: minor and log entries
is a conflict because major/minor does not apply to
log entries and the field is set to major by default.

Letting conflicts go through result in some very slow
database queries.

Bug: T160220
Change-Id: Ia6b0125c675c4a3cc4e4be4f83d1bd10d23059ba
includes/changes/ChangesListBooleanFilter.php
includes/changes/ChangesListFilter.php
includes/changes/ChangesListFilterGroup.php
includes/changes/ChangesListStringOptionsFilter.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialRecentchanges.php
tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php
tests/phpunit/mocks/MockChangesListFilter.php