MediaWiki REL1_35
Wikimedia\Rdbms\SelectQueryBuilder Class Reference
Inheritance diagram for Wikimedia\Rdbms\SelectQueryBuilder:
Collaboration diagram for Wikimedia\Rdbms\SelectQueryBuilder:

Public Member Functions

 __construct (IDatabase $db)
 
 andWhere ( $conds)
 Add conditions to the query.
 
 bigResult ()
 Enable the SQL_BIG_RESULT option.
 
 bufferResult ()
 Enable the SQL_BUFFER_RESULT option.
 
 buildGroupConcatField ( $delim)
 Build a GROUP_CONCAT or equivalent statement for a query.
 
 calcFoundRows ()
 Enable the SQL_CALC_FOUND_ROWS option.
 
 caller ( $fname)
 Set the method name to be included in an SQL comment.
 
 conds ( $conds)
 Add conditions to the query.
 
 connection (IDatabase $db)
 Change the IDatabase object the query builder is bound to.
 
 distinct ()
 Enable the DISTINCT option.
 
 estimateRowCount ()
 Estimate the number of rows in dataset.
 
 explain ()
 Make the query be an EXPLAIN SELECT query instead of a SELECT query.
 
 fetchField ()
 Run the constructed SELECT query, and return a single field extracted from the first result row.
 
 fetchFieldValues ()
 Run the constructed SELECT query, and extract a single field from each result row, returning an array containing all the values.
 
 fetchResultSet ()
 Run the constructed SELECT query and return all results.
 
 fetchRow ()
 Run the constructed SELECT query, and return the first result row.
 
 fetchRowCount ()
 Run the SELECT query, and return the number of results.
 
 field ( $field, $alias=null)
 Add a single field to the query, optionally with an alias.
 
 fields ( $fields)
 Add a field or an array of fields to the query.
 
 forUpdate ()
 Enable the FOR UPDATE option.
 
 from ( $table, $alias=null)
 Add a single table to the SELECT query.
 
 getQueryInfo ()
 Get an associative array describing the query in terms of its raw parameters to Database::select().
 
 getSQL ()
 Get the SQL query string which would be used by fetchResultSet().
 
 groupBy ( $group)
 Add a GROUP BY clause.
 
 having ( $having)
 Add a HAVING clause.
 
 ignoreIndex ( $index)
 Set the IGNORE INDEX option.
 
 joinConds (array $joinConds)
 Manually append to the $join_conds array which will be passed to IDatabase::select().
 
 limit ( $limit)
 Set the query limit.
 
 lockForUpdate ()
 Run the SELECT query with the FOR UPDATE option.
 
 lockInShareMode ()
 Enable the LOCK IN SHARE MODE option.
 
 newJoinGroup ()
 Create a parenthesized group of joins which can be added to the object like a table.
 
 newSubquery ()
 Get an empty SelectQueryBuilder which can be used to build a subquery of this query.
 
 offset ( $offset)
 Set the offset.
 
 option ( $name, $value=null)
 Manually set an option in the $options array to be passed to IDatabase::select()
 
 options (array $options)
 Manually set multiple options in the $options array to be passed to IDatabase::select().
 
 orderBy ( $fields, $direction=null)
 Set the ORDER BY clause.
 
 queryInfo ( $info)
 Set the query parameters to the given values, appending to the values which were already set.
 
 rawTables ( $tables)
 Given a table or table array as might be passed to Database::select(), append it to the existing tables, interpreting nested arrays as join groups.
 
 select ( $fields)
 Add a field or an array of fields to the query.
 
 setMaxExecutionTime (int $time)
 Set MAX_EXECUTION_TIME for queries.
 
 smallResult ()
 Enable the SQL_SMALL_RESULT option.
 
 straightJoin ()
 Enable the STRAIGHT_JOIN option.
 
 tables ( $tables)
 Add multiple tables.
 
 useIndex ( $index)
 Set a USE INDEX option.
 
 where ( $conds)
 Add conditions to the query.
 
- Public Member Functions inherited from Wikimedia\Rdbms\JoinGroupBase
 join ( $table, $alias=null, $conds=[])
 Inner join a table or group of tables.
 
 leftJoin ( $table, $alias=null, $conds=[])
 Left join a table or group of tables.
 
 table ( $table, $alias=null)
 Add a single table or a single parenthesized group.
 

Protected Member Functions

 getAutoAlias ()
 Get a table alias which is unique to this SelectQueryBuilder.
 

Private Member Functions

 getRowCountVar ()
 Private helper which extracts a field suitable for row counting from the fields array.
 
 mergeOption ( $name, $newArrayOrValue)
 Add a value to an option which may be not set or a string or array.
 
 setIndexHint ( $type, $value)
 Private helper for methods that set index hints.
 

Private Attributes

string $caller = __CLASS__
 The caller (function name) to be passed to IDatabase::select()
 
array $conds = []
 The conditions to be passed to IDatabase::select()
 
IDatabase $db
 
array $fields = []
 The fields to be passed to IDatabase::select()
 
int $nextAutoAlias = 1
 An integer used to assign automatic aliases to tables and groups.
 
array $options = []
 The options to be passed to IDatabase::select()
 

Additional Inherited Members

- Protected Attributes inherited from Wikimedia\Rdbms\JoinGroupBase
array $joinConds = []
 
 $lastAlias
 
array $tables = []
 

Detailed Description

Definition at line 5 of file SelectQueryBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\Rdbms\SelectQueryBuilder::__construct ( IDatabase  $db)

Definition at line 39 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$db.

Member Function Documentation

◆ andWhere()

Wikimedia\Rdbms\SelectQueryBuilder::andWhere (   $conds)

Add conditions to the query.

Alias for where().

Parameters
string | array$conds
Returns
$this

Definition at line 253 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\where().

◆ bigResult()

Wikimedia\Rdbms\SelectQueryBuilder::bigResult ( )

Enable the SQL_BIG_RESULT option.

Returns
$this

Definition at line 530 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ bufferResult()

Wikimedia\Rdbms\SelectQueryBuilder::bufferResult ( )

Enable the SQL_BUFFER_RESULT option.

Returns
$this

Definition at line 540 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ buildGroupConcatField()

Wikimedia\Rdbms\SelectQueryBuilder::buildGroupConcatField (   $delim)

Build a GROUP_CONCAT or equivalent statement for a query.

This is useful for combining a field for several rows into a single string. NULL values will not appear in the output, duplicated values will appear, and the resulting delimiter-separated values have no defined sort order. Code using the results may need to use the PHP unique() or sort() methods.

Parameters
string$delim
Returns
string

Definition at line 725 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\fields(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), and Wikimedia\Rdbms\SelectQueryBuilder\tables().

◆ calcFoundRows()

Wikimedia\Rdbms\SelectQueryBuilder::calcFoundRows ( )

Enable the SQL_CALC_FOUND_ROWS option.

Returns
$this

Definition at line 560 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ caller()

◆ conds()

◆ connection()

Wikimedia\Rdbms\SelectQueryBuilder::connection ( IDatabase  $db)

Change the IDatabase object the query builder is bound to.

The specified IDatabase will subsequently be used to execute the query.

Parameters
IDatabase$db
Returns
$this

Definition at line 50 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$db, and Wikimedia\Rdbms\IDatabase\getType().

◆ distinct()

Wikimedia\Rdbms\SelectQueryBuilder::distinct ( )

Enable the DISTINCT option.

Return only unique result rows.

Returns
$this

Definition at line 358 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ estimateRowCount()

Wikimedia\Rdbms\SelectQueryBuilder::estimateRowCount ( )

Estimate the number of rows in dataset.

MySQL allows you to estimate the number of rows that would be returned by a SELECT query, using EXPLAIN SELECT. The estimate is provided using index cardinality statistics, and is notoriously inaccurate, especially when large numbers of rows have recently been added or deleted.

Returns
int

Definition at line 682 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\caller(), Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\getRowCountVar(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), Wikimedia\Rdbms\SelectQueryBuilder\options(), and Wikimedia\Rdbms\SelectQueryBuilder\tables().

◆ explain()

Wikimedia\Rdbms\SelectQueryBuilder::explain ( )

Make the query be an EXPLAIN SELECT query instead of a SELECT query.

Returns
$this

Definition at line 510 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ fetchField()

Wikimedia\Rdbms\SelectQueryBuilder::fetchField ( )

Run the constructed SELECT query, and return a single field extracted from the first result row.

This may only be called when only one field has been added to the builder.

Returns
mixed

Definition at line 622 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\caller(), Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\fields(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), Wikimedia\Rdbms\SelectQueryBuilder\options(), and Wikimedia\Rdbms\SelectQueryBuilder\tables().

◆ fetchFieldValues()

Wikimedia\Rdbms\SelectQueryBuilder::fetchFieldValues ( )

Run the constructed SELECT query, and extract a single field from each result row, returning an array containing all the values.

This may only be called when only one field has been added to the builder.

Returns
array

Definition at line 639 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\caller(), Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\fields(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), Wikimedia\Rdbms\SelectQueryBuilder\options(), and Wikimedia\Rdbms\SelectQueryBuilder\tables().

◆ fetchResultSet()

Wikimedia\Rdbms\SelectQueryBuilder::fetchResultSet ( )

◆ fetchRow()

Wikimedia\Rdbms\SelectQueryBuilder::fetchRow ( )

◆ fetchRowCount()

Wikimedia\Rdbms\SelectQueryBuilder::fetchRowCount ( )

Run the SELECT query, and return the number of results.

This typically uses a subquery to discard the actual results on the server side, and is useful when counting rows with a limit.

Returns
int

Definition at line 667 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\caller(), Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\getRowCountVar(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), Wikimedia\Rdbms\SelectQueryBuilder\options(), and Wikimedia\Rdbms\SelectQueryBuilder\tables().

◆ field()

Wikimedia\Rdbms\SelectQueryBuilder::field (   $field,
  $alias = null 
)

Add a single field to the query, optionally with an alias.

The field is an SQL fragment. It is unsafe to pass user input to this function.

Parameters
string$field
string | null$alias
Returns
$this

Definition at line 193 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\fields().

◆ fields()

◆ forUpdate()

Wikimedia\Rdbms\SelectQueryBuilder::forUpdate ( )

Enable the FOR UPDATE option.

Lock the returned rows so that they can't be changed until the next COMMIT. Cannot be used with aggregate functions (COUNT, MAX, etc., but also DISTINCT).

Returns
$this

Definition at line 348 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ from()

Wikimedia\Rdbms\SelectQueryBuilder::from (   $table,
  $alias = null 
)

Add a single table to the SELECT query.

Alias for table().

Parameters
string$tableThe table name
string | null$aliasThe table alias, or null for no alias
Returns
$this

Definition at line 135 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\JoinGroupBase\table().

◆ getAutoAlias()

Wikimedia\Rdbms\SelectQueryBuilder::getAutoAlias ( )
protected

Get a table alias which is unique to this SelectQueryBuilder.

Returns
string

Reimplemented from Wikimedia\Rdbms\JoinGroupBase.

Definition at line 285 of file SelectQueryBuilder.php.

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\newJoinGroup().

◆ getQueryInfo()

Wikimedia\Rdbms\SelectQueryBuilder::getQueryInfo ( )

Get an associative array describing the query in terms of its raw parameters to Database::select().

This can be used to interface with legacy code.

Returns
array The query info array, with keys:
  • tables: The table array
  • fields: The fields
  • conds: The conditions
  • options: The query options
  • join_conds: The join conditions

Definition at line 756 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$conds, Wikimedia\Rdbms\SelectQueryBuilder\$fields, Wikimedia\Rdbms\JoinGroupBase\$joinConds, Wikimedia\Rdbms\SelectQueryBuilder\$options, and Wikimedia\Rdbms\JoinGroupBase\$tables.

Referenced by ApiQueryBase\select().

◆ getRowCountVar()

Wikimedia\Rdbms\SelectQueryBuilder::getRowCountVar ( )
private

Private helper which extracts a field suitable for row counting from the fields array.

Returns
string

Definition at line 693 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\fields().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\estimateRowCount(), and Wikimedia\Rdbms\SelectQueryBuilder\fetchRowCount().

◆ getSQL()

◆ groupBy()

Wikimedia\Rdbms\SelectQueryBuilder::groupBy (   $group)

Add a GROUP BY clause.

May be either an SQL fragment string naming a field or expression to group by, or an array of such SQL fragments.

If there is an existing GROUP BY clause, the new one will be appended.

Parameters
string | string[]$group
Returns
$this

Definition at line 383 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\mergeOption().

◆ having()

Wikimedia\Rdbms\SelectQueryBuilder::having (   $having)

Add a HAVING clause.

May be either an string containing a HAVING clause or an array of conditions building the HAVING clause. If an array is given, the conditions constructed from each element are combined with AND.

If there is an existing HAVING clause, the new one will be appended.

Parameters
string | string[]$having
Returns
$this

Definition at line 399 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\mergeOption().

◆ ignoreIndex()

Wikimedia\Rdbms\SelectQueryBuilder::ignoreIndex (   $index)

Set the IGNORE INDEX option.

If a string is given, the index hint is applied to the most recently appended table or alias. If an array is given, it is assumed to be an associative array with the alias names in the keys and the indexes in the values, as in the IGNORE INDEX option to IDatabase::select(). The array will be merged with the existing value.

Parameters
string | string[]$index
Returns
$this

Definition at line 474 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\setIndexHint().

◆ joinConds()

◆ limit()

Wikimedia\Rdbms\SelectQueryBuilder::limit (   $limit)

Set the query limit.

Return at most this many rows. The rows are sorted and then the first rows are taken until the limit is reached. Limit is applied to a result set after offset.

If the query builder already has a limit, the old limit will be discarded.

Parameters
int$limit
Returns
$this

Definition at line 324 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ lockForUpdate()

Wikimedia\Rdbms\SelectQueryBuilder::lockForUpdate ( )

◆ lockInShareMode()

Wikimedia\Rdbms\SelectQueryBuilder::lockInShareMode ( )

Enable the LOCK IN SHARE MODE option.

Lock the returned rows so that they can't be changed until the next COMMIT. Cannot be used with aggregate functions (COUNT, MAX, etc., but also DISTINCT).

Returns
$this

Definition at line 336 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ mergeOption()

Wikimedia\Rdbms\SelectQueryBuilder::mergeOption (   $name,
  $newArrayOrValue 
)
private

Add a value to an option which may be not set or a string or array.

Parameters
string$name
string | string[]$newArrayOrValue

Definition at line 434 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\groupBy(), Wikimedia\Rdbms\SelectQueryBuilder\having(), and Wikimedia\Rdbms\SelectQueryBuilder\orderBy().

◆ newJoinGroup()

Wikimedia\Rdbms\SelectQueryBuilder::newJoinGroup ( )

Create a parenthesized group of joins which can be added to the object like a table.

The group is initially empty.

Returns
JoinGroup

Definition at line 295 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\getAutoAlias().

◆ newSubquery()

Wikimedia\Rdbms\SelectQueryBuilder::newSubquery ( )

Get an empty SelectQueryBuilder which can be used to build a subquery of this query.

Returns
SelectQueryBuilder

Definition at line 124 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$db.

◆ offset()

Wikimedia\Rdbms\SelectQueryBuilder::offset (   $offset)

Set the offset.

Skip this many rows at the start of the result set. Offset with limit() can theoretically be used for paging through a result set, but this is discouraged for performance reasons.

If the query builder already has an offset, the old offset will be discarded.

Parameters
int$offset
Returns
$this

Definition at line 309 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ option()

Wikimedia\Rdbms\SelectQueryBuilder::option (   $name,
  $value = null 
)

Manually set an option in the $options array to be passed to IDatabase::select()

Parameters
string$nameThe option name
mixed$valueThe option value, or null for a boolean option
Returns
$this

Definition at line 573 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ options()

Wikimedia\Rdbms\SelectQueryBuilder::options ( array  $options)

Manually set multiple options in the $options array to be passed to IDatabase::select().

Parameters
array$options
Returns
$this

Definition at line 589 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\bigResult(), Wikimedia\Rdbms\SelectQueryBuilder\bufferResult(), Wikimedia\Rdbms\SelectQueryBuilder\calcFoundRows(), Wikimedia\Rdbms\SelectQueryBuilder\distinct(), Wikimedia\Rdbms\SelectQueryBuilder\estimateRowCount(), Wikimedia\Rdbms\SelectQueryBuilder\explain(), Wikimedia\Rdbms\SelectQueryBuilder\fetchField(), Wikimedia\Rdbms\SelectQueryBuilder\fetchFieldValues(), Wikimedia\Rdbms\SelectQueryBuilder\fetchResultSet(), Wikimedia\Rdbms\SelectQueryBuilder\fetchRow(), Wikimedia\Rdbms\SelectQueryBuilder\fetchRowCount(), Wikimedia\Rdbms\SelectQueryBuilder\forUpdate(), Wikimedia\Rdbms\SelectQueryBuilder\getSQL(), Wikimedia\Rdbms\SelectQueryBuilder\limit(), Wikimedia\Rdbms\SelectQueryBuilder\lockForUpdate(), Wikimedia\Rdbms\SelectQueryBuilder\lockInShareMode(), Wikimedia\Rdbms\SelectQueryBuilder\mergeOption(), Wikimedia\Rdbms\SelectQueryBuilder\offset(), Wikimedia\Rdbms\SelectQueryBuilder\option(), Wikimedia\Rdbms\SelectQueryBuilder\options(), Wikimedia\Rdbms\SelectQueryBuilder\queryInfo(), ApiQueryBase\select(), Wikimedia\Rdbms\SelectQueryBuilder\setIndexHint(), Wikimedia\Rdbms\SelectQueryBuilder\setMaxExecutionTime(), Wikimedia\Rdbms\SelectQueryBuilder\smallResult(), and Wikimedia\Rdbms\SelectQueryBuilder\straightJoin().

◆ orderBy()

Wikimedia\Rdbms\SelectQueryBuilder::orderBy (   $fields,
  $direction = null 
)

Set the ORDER BY clause.

If it has already been set, append the additional fields to it.

Parameters
string[] | string$fieldsThe field or list of fields to order by.
string | null$directionASC or DESC. If this is null then $fields is assumed to optionally contain ASC or DESC after each field name.
Returns
$this

Definition at line 413 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$fields, and Wikimedia\Rdbms\SelectQueryBuilder\mergeOption().

◆ queryInfo()

Wikimedia\Rdbms\SelectQueryBuilder::queryInfo (   $info)

Set the query parameters to the given values, appending to the values which were already set.

This can be used to interface with legacy code. If a key is omitted, the previous value will be retained.

The parameters must be formatted as required by Database::select. For example, JoinGroup cannot be used.

Parameters
array$infoAssociative array of query info, with keys:
  • tables: The raw array of tables to be passed to Database::select()
  • fields: The fields
  • conds: The conditions
  • options: The query options
  • join_conds: The join conditions
Returns
$this

Definition at line 76 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\fields(), Wikimedia\Rdbms\SelectQueryBuilder\joinConds(), Wikimedia\Rdbms\SelectQueryBuilder\options(), Wikimedia\Rdbms\SelectQueryBuilder\rawTables(), and Wikimedia\Rdbms\SelectQueryBuilder\where().

Referenced by ApiQueryBase\select().

◆ rawTables()

Wikimedia\Rdbms\SelectQueryBuilder::rawTables (   $tables)

Given a table or table array as might be passed to Database::select(), append it to the existing tables, interpreting nested arrays as join groups.

This can be used to interface with existing code that expresses join groups as nested arrays. In new code, join groups should generally be created with newJoinGroup(), which provides a fluent interface.

Parameters
string | array$tables
Returns
$this

Definition at line 107 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\JoinGroupBase\$tables, and Wikimedia\Rdbms\SelectQueryBuilder\tables().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\queryInfo(), and ApiQueryBase\select().

◆ select()

Wikimedia\Rdbms\SelectQueryBuilder::select (   $fields)

Add a field or an array of fields to the query.

Alias for fields().

Parameters
string | string[]$fields
Returns
$this

Definition at line 181 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\fields().

◆ setIndexHint()

Wikimedia\Rdbms\SelectQueryBuilder::setIndexHint (   $type,
  $value 
)
private

Private helper for methods that set index hints.

Parameters
string$type
string | string[]$value

Definition at line 485 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\JoinGroupBase\$lastAlias, $type, and Wikimedia\Rdbms\SelectQueryBuilder\options().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\ignoreIndex(), and Wikimedia\Rdbms\SelectQueryBuilder\useIndex().

◆ setMaxExecutionTime()

Wikimedia\Rdbms\SelectQueryBuilder::setMaxExecutionTime ( int  $time)

Set MAX_EXECUTION_TIME for queries.

Parameters
int$timemaximum allowed time in milliseconds
Returns
$this

Definition at line 369 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ smallResult()

Wikimedia\Rdbms\SelectQueryBuilder::smallResult ( )

Enable the SQL_SMALL_RESULT option.

Returns
$this

Definition at line 550 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ straightJoin()

Wikimedia\Rdbms\SelectQueryBuilder::straightJoin ( )

Enable the STRAIGHT_JOIN option.

Returns
$this

Definition at line 520 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\options().

◆ tables()

◆ useIndex()

Wikimedia\Rdbms\SelectQueryBuilder::useIndex (   $index)

Set a USE INDEX option.

If a string is given, the index hint is applied to the most recently appended table or alias. If an array is given, it is assumed to be an associative array with the alias names in the keys and the indexes in the values, as in the USE INDEX option to IDatabase::select(). The array will be merged with the existing value.

Parameters
string | string[]$index
Returns
$this

Definition at line 457 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\setIndexHint().

◆ where()

Wikimedia\Rdbms\SelectQueryBuilder::where (   $conds)

Add conditions to the query.

The supplied conditions will be appended to the existing conditions, separated by AND.

Parameters
string | array$conds

May be either a string containing a single condition, or an array of conditions. If an array is given, the conditions constructed from each element are combined with AND.

Array elements may take one of two forms:

  • Elements with a numeric key are interpreted as raw SQL fragments.
  • Elements with a string key are interpreted as equality conditions, where the key is the field name.
    • If the value of such an array element is a scalar (such as a string), it will be treated as data and thus quoted appropriately. If it is null, an IS NULL clause will be added.
    • If the value is an array, an IN (...) clause will be constructed from its non-null elements, and an IS NULL clause will be added if null is present, such that the field may match any of the elements in the array. The non-null elements will be quoted.

Note that expressions are often DBMS-dependent in their syntax. DBMS-independent wrappers are provided for constructing several types of expression commonly used in condition queries. See:

  • IDatabase::buildLike()
  • IDatabase::conditional()

Untrusted user input is safe in the values of string keys, however untrusted input must not be used in the array key names or in the values of numeric keys. Escaping of untrusted input used in values of numeric keys should be done via IDatabase::addQuotes()

Returns
$this

Definition at line 238 of file SelectQueryBuilder.php.

References Wikimedia\Rdbms\SelectQueryBuilder\$conds, and Wikimedia\Rdbms\SelectQueryBuilder\conds().

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\andWhere(), Wikimedia\Rdbms\SelectQueryBuilder\conds(), Wikimedia\Rdbms\SelectQueryBuilder\queryInfo(), and ApiQueryBase\select().

Member Data Documentation

◆ $caller

string Wikimedia\Rdbms\SelectQueryBuilder::$caller = __CLASS__
private

The caller (function name) to be passed to IDatabase::select()

Definition at line 19 of file SelectQueryBuilder.php.

◆ $conds

array Wikimedia\Rdbms\SelectQueryBuilder::$conds = []
private

The conditions to be passed to IDatabase::select()

Definition at line 14 of file SelectQueryBuilder.php.

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\getQueryInfo(), and Wikimedia\Rdbms\SelectQueryBuilder\where().

◆ $db

◆ $fields

array Wikimedia\Rdbms\SelectQueryBuilder::$fields = []
private

◆ $nextAutoAlias

int Wikimedia\Rdbms\SelectQueryBuilder::$nextAutoAlias = 1
private

An integer used to assign automatic aliases to tables and groups.

Definition at line 29 of file SelectQueryBuilder.php.

◆ $options

array Wikimedia\Rdbms\SelectQueryBuilder::$options = []
private

The options to be passed to IDatabase::select()

Definition at line 24 of file SelectQueryBuilder.php.

Referenced by Wikimedia\Rdbms\SelectQueryBuilder\getQueryInfo().


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