MediaWiki master
MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition Class Reference

An equals or not-equals comparison with a field that is known to have a small fixed set of values. More...

Inherits MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase.

Collaboration diagram for MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition:

Public Member Functions

 __construct (private string $fieldName, private array $allValues)
 
 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.
Parameters
stdClass$row
mixed$valueThe validated value
Returns
bool

 
 validateValue ( $value)
 
- 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.
Returns
bool

 
- 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

 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.
Parameters
IReadableDatabase$dbr
QueryBackend$query

 

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 = []
 

Detailed Description

An equals or not-equals comparison with a field that is known to have a small fixed set of values.

The generated condition will typically have the form field IN (values), even when a value is excluded.

This is only appropriate when the set of all values is small and the field is indexed.

This class works with either integer or string types, taking advantage of the fact that DB results are conventionally cast to strings.

Access: internal
For use by ChangesListQuery
Since
1.45

Definition at line 23 of file EnumFieldCondition.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition::__construct ( private string $fieldName,
private array $allValues )
Parameters
string$fieldNameThe field name
(int|string)[]$allValues All possible values for the field

Definition at line 28 of file EnumFieldCondition.php.

Member Function Documentation

◆ evaluate()

MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition::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.

Parameters
stdClass$row
mixed$valueThe validated value
Returns
bool

Implements MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition.

Definition at line 47 of file EnumFieldCondition.php.

◆ prepareCapture()

MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition::prepareCapture ( IReadableDatabase $dbr,
QueryBackend $query )
protected

◆ prepareConds()

MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition::prepareConds ( IReadableDatabase $dbr,
QueryBackend $query )
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.

Parameters
IReadableDatabase$dbr
QueryBackend$query

Reimplemented from MediaWiki\RecentChanges\ChangesListQuery\ChangesListConditionBase.

Definition at line 57 of file EnumFieldCondition.php.

References Wikimedia\Rdbms\IReadableDatabase\expr(), MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\forceEmptySet(), and MediaWiki\RecentChanges\ChangesListQuery\QueryBackend\where().

◆ validateValue()

MediaWiki\RecentChanges\ChangesListQuery\EnumFieldCondition::validateValue ( $value)
Parameters
int | string$value
Returns
int|string

Implements MediaWiki\RecentChanges\ChangesListQuery\ChangesListCondition.

Definition at line 38 of file EnumFieldCondition.php.


The documentation for this class was generated from the following file: