|
MediaWiki master
|
Inherits MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase.

Public Member Functions | |||||||
| __construct (private ChangeTagsStore $changeTagsStore, private TableStatsProvider $rcStats, private LoggerInterface $logger, private bool $miserMode,) | |||||||
| evaluate (stdClass $row, $value) | |||||||
Evaluate the filter condition against a row, determining whether it is true or false.Ignore the values set with require() and exclude(), use only the value passed as a parameter.To ensure that $row has the required fields present, capture() must be called before evaluate(). This will signal to prepareQuery() that the fields should be added.
| |||||||
| setDenseRcSizeThreshold ( $threshold) | |||||||
| Set the minimum size of the recentchanges table at which change tag queries will be conditionally modified based on estimated density. | |||||||
| setDensityThresholdReached (bool $reached) | |||||||
| setLimit (int $limit) | |||||||
| Set the query limit to be used for density heuristics. | |||||||
| validateValue ( $value) | |||||||
Validate a value and return its normalized form.
| |||||||
Public Member Functions inherited from MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase | |||||||
| capture () | |||||||
| Set a flag indicating that evaluate() will be called with rows from the query result. | |||||||
| isCaptured () | |||||||
Check whether capture() has been called.
| |||||||
Public Member Functions inherited from MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition | |||||||
| exclude ( $value) | |||||||
| Add a value to the set of excluded values. | |||||||
| prepareQuery (IReadableDatabase $dbr, QueryBackend $query) | |||||||
| Add conditions and joins to the query in order to implement require() and exclude(). | |||||||
Protected Member Functions | |||||||
| isDenseTagFilter (IReadableDatabase $dbr, array $tagIds) | |||||||
| Determine whether a tag filter matches a high proportion of the rows in recentchanges. | |||||||
| prepareCapture (IReadableDatabase $dbr, QueryBackend $query) | |||||||
| prepareConds (IReadableDatabase $dbr, QueryBackend $query) | |||||||
Add conditions to the query according to the values passed to require() and exclude().Subclasses may use getUniqueValuesWithUnion() to get the required and excluded values.
| |||||||
Additional Inherited Members | |
Public Attributes inherited from MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase | |
| function | |
Public Attributes inherited from MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition | |
| function | |
| Add a value to the set of required values. | |
Protected Attributes inherited from MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase | |
| array | $excluded = [] |
| array | $required = [] |
Definition at line 10 of file ChangeTagsCondition.php.
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::__construct | ( | private ChangeTagsStore | $changeTagsStore, |
| private TableStatsProvider | $rcStats, | ||
| private LoggerInterface | $logger, | ||
| private bool | $miserMode ) |
Definition at line 16 of file ChangeTagsCondition.php.
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::evaluate | ( | stdClass | $row, |
| $value ) |
Evaluate the filter condition against a row, determining whether it is true or false.Ignore the values set with require() and exclude(), use only the value passed as a parameter.To ensure that $row has the required fields present, capture() must be called before evaluate(). This will signal to prepareQuery() that the fields should be added.
| stdClass | $row | |
| mixed | $value | The validated value |
Implements MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition.
Definition at line 60 of file ChangeTagsCondition.php.
|
protected |
Determine whether a tag filter matches a high proportion of the rows in recentchanges.
If so, it is more efficient to scan recentchanges, filtering out non-matching rows, rather than scanning change_tag and then filesorting on rc_timestamp. MySQL is especially bad at making this judgement (T298225).
| IReadableDatabase | $dbr | |
| int[] | $tagIds |
Definition at line 124 of file ChangeTagsCondition.php.
References Wikimedia\Rdbms\IReadableDatabase\expr(), Wikimedia\Rdbms\IReadableDatabase\getType(), and Wikimedia\Rdbms\IReadableDatabase\newSelectQueryBuilder().
|
protected |
Definition at line 68 of file ChangeTagsCondition.php.
References MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\fields().
|
protected |
Add conditions to the query according to the values passed to require() and exclude().Subclasses may use getUniqueValuesWithUnion() to get the required and excluded values.
| IReadableDatabase | $dbr | |
| QueryBackend | $query |
Reimplemented from MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase.
Definition at line 75 of file ChangeTagsCondition.php.
References MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\distinct(), Wikimedia\Rdbms\IReadableDatabase\expr(), MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\forceEmptySet(), MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\joinForConds(), and MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\where().
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::setDenseRcSizeThreshold | ( | $threshold | ) |
Set the minimum size of the recentchanges table at which change tag queries will be conditionally modified based on estimated density.
| float | int | $threshold |
Definition at line 47 of file ChangeTagsCondition.php.
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::setDensityThresholdReached | ( | bool | $reached | ) |
| bool | $reached | Whether the query density is high enough to apply heuristics for a straight join |
Definition at line 37 of file ChangeTagsCondition.php.
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::setLimit | ( | int | $limit | ) |
Set the query limit to be used for density heuristics.
| int | $limit |
Definition at line 29 of file ChangeTagsCondition.php.
| MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::validateValue | ( | $value | ) |
Validate a value and return its normalized form.
| mixed | $value |
Implements MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition.
Definition at line 52 of file ChangeTagsCondition.php.