MediaWiki
master
|
Public Member Functions | |||||||||||||||||||
buildConcat ( $stringList) | |||||||||||||||||||
Build a concatenation list to feed into a SQL query. More... | |||||||||||||||||||
buildGreatest ( $fields, $values) | |||||||||||||||||||
Build a GREATEST function statement comparing columns/values.Integer and float values in $values will not be quotedIf $fields is an array, then each value with a string key is treated as an expression (which must be manually quoted); such string keys do not appear in the SQL and are only descriptive aliases.
| |||||||||||||||||||
buildGroupConcatField ( $delim, $table, $field, $conds='', $join_conds=[]) | |||||||||||||||||||
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.
| |||||||||||||||||||
buildLeast ( $fields, $values) | |||||||||||||||||||
Build a LEAST function statement comparing columns/values.Integer and float values in $values will not be quotedIf $fields is an array, then each value with a string key is treated as an expression (which must be manually quoted); such string keys do not appear in the SQL and are only descriptive aliases.
| |||||||||||||||||||
buildStringCast ( $field) | |||||||||||||||||||
buildSubstring ( $input, $startPosition, $length=null) | |||||||||||||||||||
| |||||||||||||||||||
dropTableSqlText ( $table) | |||||||||||||||||||
isTransactableQuery (Query $sql) | |||||||||||||||||||
Determine whether a SQL statement is sensitive to isolation level. More... | |||||||||||||||||||
isWriteQuery ( $sql, $flags) | |||||||||||||||||||
Determine whether a query writes to the DB. More... | |||||||||||||||||||
tableName ( $name, $format='quoted') | |||||||||||||||||||
Format a table name ready for use in constructing an SQL query.This does two important things: it quotes the table names to clean them up, and it adds a table prefix if only given a table name with no quotes.All functions of this object which require a table name call this function themselves. Pass the canonical name to such functions. This is only needed when calling query() directly.
| |||||||||||||||||||
unionQueries ( $sqls, $all) | |||||||||||||||||||
unionSupportsOrderAndLimit () | |||||||||||||||||||
![]() | |||||||||||||||||||
__construct (DbQuoter $quoter, LoggerInterface $logger=null, DatabaseDomain $currentDomain=null, $errorLogger=null) | |||||||||||||||||||
addIdentifierQuotes ( $s) | |||||||||||||||||||
Escape a SQL identifier (e.g.table, column, database) for use in a SQL queryDepending on the database this will either be backticks or "double quotes"
| |||||||||||||||||||
anyChar () | |||||||||||||||||||
Returns a token for buildLike() that denotes a '_' to be used in a LIKE query. More... | |||||||||||||||||||
anyString () | |||||||||||||||||||
Returns a token for buildLike() that denotes a '' to be used in a LIKE query. More... | |||||||||||||||||||
assertValidUpsertSetArray (array $set, array $identityKey, array $rows) | |||||||||||||||||||
bitAnd ( $fieldLeft, $fieldRight) | |||||||||||||||||||
| |||||||||||||||||||
bitNot ( $field) | |||||||||||||||||||
| |||||||||||||||||||
bitOr ( $fieldLeft, $fieldRight) | |||||||||||||||||||
| |||||||||||||||||||
buildComparison (string $op, array $conds) | |||||||||||||||||||
Build a condition comparing multiple values, for use with indexes that cover multiple fields, common when e.g. More... | |||||||||||||||||||
buildExcludedValue ( $column) | |||||||||||||||||||
Build a reference to a column value from the conflicting proposed upsert() row. More... | |||||||||||||||||||
buildIntegerCast ( $field) | |||||||||||||||||||
| |||||||||||||||||||
buildLike ( $param,... $params) | |||||||||||||||||||
LIKE statement wrapper.This takes a variable-length argument list with parts of pattern to match containing either string literals that will be escaped or tokens returned by anyChar() or anyString(). Alternatively, the function could be provided with an array of the aforementioned parameters.Example: $dbr->buildLike( 'My_page_title/', $dbr->anyString() ) returns a LIKE clause that searches for subpages of 'My page title'. Alternatively: $pattern = [ 'My_page_title/', $dbr->anyString() ]; $query .= $dbr->buildLike( $pattern );
| |||||||||||||||||||
buildSelectSubquery ( $table, $vars, $conds='', $fname=__METHOD__, $options=[], $join_conds=[]) | |||||||||||||||||||
Equivalent to IDatabase::selectSQLText() except wraps the result in Subquery. More... | |||||||||||||||||||
conditional ( $cond, $caseTrueExpression, $caseFalseExpression) | |||||||||||||||||||
Returns an SQL expression for a simple conditional.This doesn't need to be overridden unless CASE isn't supported in the RDBMS.
| |||||||||||||||||||
decodeExpiry ( $expiry, $format=TS_MW) | |||||||||||||||||||
Decode an expiry time into a DBMS independent format. More... | |||||||||||||||||||
deleteJoinSqlText ( $delTable, $joinTable, $delVar, $joinVar, $conds) | |||||||||||||||||||
deleteSqlText ( $table, $conds) | |||||||||||||||||||
dispatchingInsertSqlText ( $table, $rows, $options) | |||||||||||||||||||
encodeExpiry ( $expiry) | |||||||||||||||||||
Encode an expiry time into the DBMS dependent format. More... | |||||||||||||||||||
escapeLikeInternal ( $s, $escapeChar='`') | |||||||||||||||||||
extractSingleFieldFromList ( $var) | |||||||||||||||||||
factorConds ( $condsArray) | |||||||||||||||||||
Given an array of condition arrays representing an OR list of AND lists, for example: More... | |||||||||||||||||||
fieldNameWithAlias ( $name, $alias=false) | |||||||||||||||||||
Get an aliased field name e.g. More... | |||||||||||||||||||
getInfinity () | |||||||||||||||||||
Find out when 'infinity' is.Most DBMSes support this. This is a special keyword for timestamps in PostgreSQL, and works with CHAR(14) as well because "i" sorts after all numbers.
| |||||||||||||||||||
getQueryVerb ( $sql) | |||||||||||||||||||
getTableAliases () | |||||||||||||||||||
ignoreIndexClause ( $index) | |||||||||||||||||||
IGNORE INDEX clause. More... | |||||||||||||||||||
implicitOrderby () | |||||||||||||||||||
Returns true if this database does an implicit order by when the column has an index For example: SELECT page_title FROM page LIMIT 1.
| |||||||||||||||||||
indexName ( $index) | |||||||||||||||||||
Allows for index remapping in queries where this is not consistent across DBMS. More... | |||||||||||||||||||
insertNonConflictingSqlText ( $table, array $rows) | |||||||||||||||||||
insertSelectNativeSqlText ( $destTable, $srcTable, array $varMap, $conds, $fname, array $insertOptions, array $selectOptions, $selectJoinConds) | |||||||||||||||||||
insertSqlText ( $table, array $rows) | |||||||||||||||||||
isFlagInOptions ( $option, array $options) | |||||||||||||||||||
isQuotedIdentifier ( $name) | |||||||||||||||||||
Returns if the given identifier looks quoted or not according to the database convention for quoting identifiers. More... | |||||||||||||||||||
limitResult ( $sql, $limit, $offset=false) | |||||||||||||||||||
Construct a LIMIT query with optional offset.The SQL should be adjusted so that only the first $limit rows are returned. If $offset is provided as well, then the first $offset rows should be discarded, and the next $limit rows should be returned. If the result of the query is not ordered, then the rows to be returned are theoretically arbitrary.$sql is expected to be a SELECT, if that makes a difference.
| |||||||||||||||||||
lockIsFreeSQLText ( $lockName) | |||||||||||||||||||
lockSQLText ( $lockName, $timeout) | |||||||||||||||||||
makeInsertLists (array $rows, $aliasPrefix='', array $typeByColumn=[]) | |||||||||||||||||||
Make SQL lists of columns, row tuples, and column aliases for INSERT/VALUES expressions. More... | |||||||||||||||||||
makeKeyCollisionCondition (array $rows, array $uniqueKey) | |||||||||||||||||||
Build an SQL condition to find rows with matching key values to those in $rows. More... | |||||||||||||||||||
makeList (array $a, $mode=self::LIST_COMMA) | |||||||||||||||||||
Makes an encoded list of strings from an array. More... | |||||||||||||||||||
makeWhereFrom2d ( $data, $baseKey, $subKey) | |||||||||||||||||||
Build a "OR" condition with pairs from a two-dimensional array. More... | |||||||||||||||||||
normalizeConditions ( $conds, $fname) | |||||||||||||||||||
normalizeOptions ( $options) | |||||||||||||||||||
normalizeUpsertParams ( $uniqueKeys, &$rows) | |||||||||||||||||||
Validate and normalize parameters to upsert() or replace() More... | |||||||||||||||||||
qualifiedTableComponents ( $name) | |||||||||||||||||||
Get the table components needed for a query given the currently selected database. More... | |||||||||||||||||||
releaseSavepointSqlText ( $identifier) | |||||||||||||||||||
replaceVars ( $ins) | |||||||||||||||||||
Database-independent variable replacement. More... | |||||||||||||||||||
rollbackSqlText () | |||||||||||||||||||
rollbackToSavepointSqlText ( $identifier) | |||||||||||||||||||
savepointSqlText ( $identifier) | |||||||||||||||||||
selectSQLText ( $table, $vars, $conds='', $fname=__METHOD__, $options=[], $join_conds=[]) | |||||||||||||||||||
Take the same arguments as IDatabase::select() and return the SQL it would use.This can be useful for making UNION queries, where the SQL text of each query is needed. In general, however, callers outside of Database classes should just use select().
| |||||||||||||||||||
setCurrentDomain (DatabaseDomain $currentDomain) | |||||||||||||||||||
setIndexAliases (array $aliases) | |||||||||||||||||||
Convert certain index names to alternative names before querying the DB.Note that this applies to indexes regardless of the table they belong to.This can be employed when an index was renamed X => Y in code, but the new Y-named indexes were not yet built on all DBs. After all the Y-named ones are added by the DBA, the aliases can be removed, and then the old X-named indexes dropped.
| |||||||||||||||||||
setPrefix ( $prefix) | |||||||||||||||||||
setSchemaVars ( $vars) | |||||||||||||||||||
Set schema variables to be used when streaming commands from SQL files or stdin. More... | |||||||||||||||||||
setTableAliases (array $aliases) | |||||||||||||||||||
Make certain table names use their own database, schema, and table prefix when passed into SQL queries pre-escaped and without a qualified database name.For example, "user" can be converted to "myschema.mydbname.user" for convenience. Appearances like user , somedb.user, somedb.someschema.user will used literally.Calling this twice will completely clear any old table aliases. Also, note that callers are responsible for making sure the schemas and databases actually exist.
| |||||||||||||||||||
strreplace ( $orig, $old, $new) | |||||||||||||||||||
Returns a SQL expression for simple string replacement (e.g.REPLACE() in mysql)
| |||||||||||||||||||
tableNames (... $tables) | |||||||||||||||||||
Fetch a number of table names into an associative array. More... | |||||||||||||||||||
tableNamesN (... $tables) | |||||||||||||||||||
Fetch a number of table names into a zero-indexed numerical array. More... | |||||||||||||||||||
timestamp ( $ts=0) | |||||||||||||||||||
Convert a timestamp in one of the formats accepted by ConvertibleTimestamp to the format used for inserting into timestamp fields in this DBMS.The result is unquoted, and needs to be passed through addQuotes() before it can be included in raw SQL.
| |||||||||||||||||||
timestampOrNull ( $ts=null) | |||||||||||||||||||
Convert a timestamp in one of the formats accepted by ConvertibleTimestamp to the format used for inserting into timestamp fields in this DBMS. More... | |||||||||||||||||||
unionConditionPermutations ( $table, $vars, array $permute_conds, $extra_conds='', $fname=__METHOD__, $options=[], $join_conds=[]) | |||||||||||||||||||
Construct a UNION query for permutations of conditions. More... | |||||||||||||||||||
unlockSQLText ( $lockName) | |||||||||||||||||||
updateSqlText ( $table, $set, $conds, $options) | |||||||||||||||||||
useIndexClause ( $index) | |||||||||||||||||||
USE INDEX clause. More... | |||||||||||||||||||
![]() | |||||||||||||||||||
buildSubString ( $input, $startPosition, $length=null) | |||||||||||||||||||
Build a SUBSTRING function. More... | |||||||||||||||||||
Protected Member Functions | |
makeInsertNonConflictingVerbAndOptions () | |
makeSelectOptions (array $options) | |
Returns an optional USE INDEX clause to go after the table, and a string to go at the end of the query. More... | |
makeUpdateOptionsArray ( $options) | |
![]() | |
assertBuildSubstringParams ( $startPosition, $length) | |
Check type and bounds for parameters to self::buildSubstring() More... | |
assertConditionIsNotEmpty ( $conds, string $fname, bool $deprecate) | |
Check type and bounds conditions parameters for update. More... | |
assertValidUpsertRowArray (array $rows, array $identityKey) | |
buildSuperlative ( $sqlfunc, $fields, $values) | |
Build a superlative function statement comparing columns/values. More... | |
fieldNamesWithAlias ( $fields) | |
Gets an array of aliased field names. More... | |
getDefaultSchemaVars () | |
Get schema variables to use if none have been set via setSchemaVars(). More... | |
getSchemaVars () | |
Get schema variables. More... | |
makeGroupByWithHaving ( $options) | |
Returns an optional GROUP BY with an optional HAVING. More... | |
makeOrderBy ( $options) | |
Returns an optional ORDER BY. More... | |
makeUpdateOptions ( $options) | |
Make UPDATE options for the Database::update function. More... | |
normalizeJoinType (string $joinType) | |
Validate and normalize a join type. More... | |
normalizeRowArray (array $rowOrRows) | |
relationSchemaQualifier () | |
tableNamesWithIndexClauseOrJOIN ( $tables, $use_index=[], $ignore_index=[], $join_conds=[]) | |
Get the aliased table name clause for a FROM clause which might have a JOIN and/or USE INDEX or IGNORE INDEX clause. More... | |
tableNameWithAlias ( $table, $alias=false) | |
Get an aliased table name. More... | |
Additional Inherited Members | |
![]() | |
const | QUERY_PSEUDO_PERMANENT = 2 |
Track a TEMPORARY table CREATE as if it was for a permanent table (for testing) More... | |
![]() | |
DatabaseDomain null | $currentDomain |
callable | $errorLogger |
Error logging callback. More... | |
string[] | $indexAliases = [] |
Current map of (index alias => index) More... | |
LoggerInterface | $logger |
DbQuoter | $quoter |
array null | $schemaVars |
Current variables use for schema element placeholders. More... | |
array[] | $tableAliases = [] |
Current map of (table => (dbname, schema, prefix) map) More... | |
Wikimedia\Rdbms\Platform\SqlitePlatform::buildConcat | ( | $stringList | ) |
Build a concatenation list to feed into a SQL query.
string[] | $stringList |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 43 of file SqlitePlatform.php.
Wikimedia\Rdbms\Platform\SqlitePlatform::buildGreatest | ( | $fields, | |
$values | |||
) |
Build a GREATEST function statement comparing columns/values.Integer and float values in $values will not be quotedIf $fields is an array, then each value with a string key is treated as an expression (which must be manually quoted); such string keys do not appear in the SQL and are only descriptive aliases.
string | string[] | $fields | Name(s) of column(s) with values to compare |
string | int | float | string[] | int[] | float[] | $values | Values to compare |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 29 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Platform\SQLPlatform\buildSuperlative().
Wikimedia\Rdbms\Platform\SqlitePlatform::buildGroupConcatField | ( | $delim, | |
$table, | |||
$field, | |||
$conds = '' , |
|||
$join_conds = [] |
|||
) |
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.
string | $delim | Glue to bind the results together |
string | array | $table | Table name |
string | $field | Field name |
string | array | $conds | Conditions |
string | array | $join_conds | Join conditions |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 103 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Platform\SQLPlatform\selectSQLText().
Wikimedia\Rdbms\Platform\SqlitePlatform::buildLeast | ( | $fields, | |
$values | |||
) |
Build a LEAST function statement comparing columns/values.Integer and float values in $values will not be quotedIf $fields is an array, then each value with a string key is treated as an expression (which must be manually quoted); such string keys do not appear in the SQL and are only descriptive aliases.
string | string[] | $fields | Name(s) of column(s) with values to compare |
string | int | float | string[] | int[] | float[] | $values | Values to compare |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 33 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Platform\SQLPlatform\buildSuperlative().
Wikimedia\Rdbms\Platform\SqlitePlatform::buildStringCast | ( | $field | ) |
string | $field | Field or column to cast |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 79 of file SqlitePlatform.php.
Wikimedia\Rdbms\Platform\SqlitePlatform::buildSubstring | ( | $input, | |
$startPosition, | |||
$length = null |
|||
) |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 65 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Platform\SQLPlatform\assertBuildSubstringParams().
Wikimedia\Rdbms\Platform\SqlitePlatform::dropTableSqlText | ( | $table | ) |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 141 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Platform\SqlitePlatform\tableName().
Wikimedia\Rdbms\Platform\SqlitePlatform::isTransactableQuery | ( | Query | $sql | ) |
Determine whether a SQL statement is sensitive to isolation level.
A SQL statement is considered transactable if its result could vary depending on the transaction isolation level. Operational commands such as 'SET' and 'SHOW' are not considered to be transactable.
Main purpose: Used by query() to decide whether to begin a transaction before the current query (in DBO_TRX mode, on by default).
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 146 of file SqlitePlatform.php.
References Wikimedia\Rdbms\Query\getVerb().
Wikimedia\Rdbms\Platform\SqlitePlatform::isWriteQuery | ( | $sql, | |
$flags | |||
) |
Determine whether a query writes to the DB.
When in doubt, this returns true.
Main use cases:
string | $sql | SQL query |
int | $flags | Query flags to query() |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 154 of file SqlitePlatform.php.
|
protected |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 111 of file SqlitePlatform.php.
|
protected |
Returns an optional USE INDEX clause to go after the table, and a string to go at the end of the query.
array | $options | Associative array of options to be turned into an SQL query, valid keys are listed in the function. |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 92 of file SqlitePlatform.php.
|
protected |
array | $options |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 119 of file SqlitePlatform.php.
Wikimedia\Rdbms\Platform\SqlitePlatform::tableName | ( | $name, | |
$format = 'quoted' |
|||
) |
Format a table name ready for use in constructing an SQL query.This does two important things: it quotes the table names to clean them up, and it adds a table prefix if only given a table name with no quotes.All functions of this object which require a table name call this function themselves. Pass the canonical name to such functions. This is only needed when calling query() directly.
string | $name | Database table name |
string | $format | One of: quoted - Automatically pass the table name through addIdentifierQuotes() so that it can be used in a query. raw - Do not add identifier quotes to the table name |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 83 of file SqlitePlatform.php.
Referenced by Wikimedia\Rdbms\Platform\SqlitePlatform\dropTableSqlText().
Wikimedia\Rdbms\Platform\SqlitePlatform::unionQueries | ( | $sqls, | |
$all | |||
) |
string[] | $sqls | |
bool | $all | Whether to "UNION ALL" or not |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 52 of file SqlitePlatform.php.
Wikimedia\Rdbms\Platform\SqlitePlatform::unionSupportsOrderAndLimit | ( | ) |
Reimplemented from Wikimedia\Rdbms\Platform\SQLPlatform.
Definition at line 61 of file SqlitePlatform.php.