MediaWiki  1.27.4
BatchRowIterator Class Reference
Inheritance diagram for BatchRowIterator:
Collaboration diagram for BatchRowIterator:

Public Member Functions

 __construct (IDatabase $db, $table, $primaryKey, $batchSize)
 
 addConditions (array $conditions)
 
 addJoinConditions (array $conditions)
 
 current ()
 
 extractPrimaryKeys ($row)
 Extracts the primary key(s) from a database row. More...
 
 getChildren ()
 
 hasChildren ()
 
 key ()
 
 next ()
 Fetch the next set of rows from the database. More...
 
 rewind ()
 Reset the iterator to the begining of the table. More...
 
 setFetchColumns (array $columns)
 
 valid ()
 

Protected Member Functions

 buildConditions ()
 Uses the primary key list and the maximal result row from the previous iteration to build an SQL condition sufficient for selecting the next page of results. More...
 
 buildGreaterThanCondition (array $quotedMaximumValues)
 Given an array of column names and their maximum value generate an SQL condition where all keys except the last match $quotedMaximumValues exactly and the last column is greater than the matching value in $quotedMaximumValues. More...
 

Protected Attributes

 $batchSize
 
 $conditions = []
 
 $db
 
 $fetchColumns
 
 $joinConditions = []
 
 $orderBy
 
 $primaryKey
 
 $table
 

Private Attributes

 $current = []
 
integer $key
 key 0-indexed number of pages fetched since self::reset() More...
 

Detailed Description

Definition at line 26 of file BatchRowIterator.php.

Constructor & Destructor Documentation

BatchRowIterator::__construct ( IDatabase  $db,
  $table,
  $primaryKey,
  $batchSize 
)
Parameters
IDatabase$dbThe database to read from
string$tableThe name of the table to read from
string | array$primaryKeyThe name or names of the primary key columns
integer$batchSizeThe number of rows to fetch per iteration
Exceptions
MWException

Definition at line 87 of file BatchRowIterator.php.

References $batchSize, $db, $primaryKey, $table, array(), and table.

Member Function Documentation

BatchRowIterator::addConditions ( array  $conditions)
Parameters
array$conditionQuery conditions suitable for use with IDatabase::select

Definition at line 103 of file BatchRowIterator.php.

References conditions.

BatchRowIterator::addJoinConditions ( array  $conditions)
Parameters
array$conditionQuery join conditions suitable for use with IDatabase::select

Definition at line 111 of file BatchRowIterator.php.

BatchRowIterator::buildConditions ( )
protected

Uses the primary key list and the maximal result row from the previous iteration to build an SQL condition sufficient for selecting the next page of results.

All except the final key use = conditions while the final key uses a > condition

Example output: array( '( foo = 42 AND bar > 7 ) OR ( foo > 42 )' )

Returns
array The SQL conditions necessary to select the next set of rows in the batched query

Definition at line 224 of file BatchRowIterator.php.

References $conditions, as, buildGreaterThanCondition(), and current().

Referenced by next().

BatchRowIterator::buildGreaterThanCondition ( array  $quotedMaximumValues)
protected

Given an array of column names and their maximum value generate an SQL condition where all keys except the last match $quotedMaximumValues exactly and the last column is greater than the matching value in $quotedMaximumValues.

Parameters
array$quotedMaximumValuesThe maximum values quoted with $this->db->addQuotes()
Returns
string An SQL condition that will select rows where all columns match the maximum value exactly except the last column which must be greater than the provided maximum value

Definition at line 266 of file BatchRowIterator.php.

References $conditions, $keys, $value, and as.

Referenced by buildConditions().

BatchRowIterator::current ( )
Returns
array The most recently fetched set of rows from the database

Definition at line 148 of file BatchRowIterator.php.

References $current.

Referenced by buildConditions(), getChildren(), hasChildren(), next(), and rewind().

BatchRowIterator::extractPrimaryKeys (   $row)

Extracts the primary key(s) from a database row.

Parameters
stdClass$rowAn individual database row from this iterator
Returns
array Map of primary key column to value within the row

Definition at line 137 of file BatchRowIterator.php.

References as.

BatchRowIterator::getChildren ( )
Returns
RecursiveIterator

Definition at line 185 of file BatchRowIterator.php.

References current().

BatchRowIterator::hasChildren ( )
Returns
bool True when this result set has rows

Definition at line 178 of file BatchRowIterator.php.

References current().

array $primaryKey The name of the primary BatchRowIterator::key ( )
Returns
integer 0-indexed count of the page number fetched

Definition at line 155 of file BatchRowIterator.php.

References $key.

Referenced by next(), and rewind().

BatchRowIterator::next ( )

Fetch the next set of rows from the database.

Definition at line 192 of file BatchRowIterator.php.

References $res, buildConditions(), current(), key(), and table.

Referenced by rewind().

BatchRowIterator::rewind ( )

Reset the iterator to the begining of the table.

Definition at line 162 of file BatchRowIterator.php.

References current(), key(), and next().

BatchRowIterator::setFetchColumns ( array  $columns)
Parameters
array$columnsList of column names to select from the table suitable for use with IDatabase::select()

Definition at line 119 of file BatchRowIterator.php.

BatchRowIterator::valid ( )
Returns
bool True when the iterator is in a valid state

Definition at line 171 of file BatchRowIterator.php.

References $current.

Member Data Documentation

BatchRowIterator::$batchSize
protected

Definition at line 46 of file BatchRowIterator.php.

Referenced by __construct().

BatchRowIterator::$conditions = []
protected

Definition at line 52 of file BatchRowIterator.php.

Referenced by buildConditions(), and buildGreaterThanCondition().

BatchRowIterator::$current = []
private

Definition at line 73 of file BatchRowIterator.php.

Referenced by current(), and valid().

BatchRowIterator::$db
protected

Definition at line 31 of file BatchRowIterator.php.

Referenced by __construct().

BatchRowIterator::$fetchColumns
protected

Definition at line 63 of file BatchRowIterator.php.

array BatchRowIterator::$joinConditions = []
protected

Definition at line 57 of file BatchRowIterator.php.

integer BatchRowIterator::$key
private

key 0-indexed number of pages fetched since self::reset()

Definition at line 78 of file BatchRowIterator.php.

Referenced by key().

BatchRowIterator::$orderBy
protected

Definition at line 68 of file BatchRowIterator.php.

BatchRowIterator::$primaryKey
protected

Definition at line 41 of file BatchRowIterator.php.

Referenced by __construct().

BatchRowIterator::$table
protected

Definition at line 36 of file BatchRowIterator.php.

Referenced by __construct().


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