Submit
Path:
~
/
/
opt
/
psa
/
phpMyAdmin
/
vendor
/
phpmyadmin
/
sql-parser
/
src
/
Statements
/
File Content:
SelectStatement.php
<?php declare(strict_types=1); namespace PhpMyAdmin\SqlParser\Statements; use PhpMyAdmin\SqlParser\Components\ArrayObj; use PhpMyAdmin\SqlParser\Components\CaseExpression; use PhpMyAdmin\SqlParser\Components\Condition; use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\FunctionCall; use PhpMyAdmin\SqlParser\Components\GroupKeyword; use PhpMyAdmin\SqlParser\Components\IndexHint; use PhpMyAdmin\SqlParser\Components\IntoKeyword; use PhpMyAdmin\SqlParser\Components\JoinKeyword; use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\OrderKeyword; use PhpMyAdmin\SqlParser\Statement; /** * `SELECT` statement. * * SELECT * [ALL | DISTINCT | DISTINCTROW ] * [HIGH_PRIORITY] * [MAX_STATEMENT_TIME = N] * [STRAIGHT_JOIN] * [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] * [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] * select_expr [, select_expr ...] * [FROM table_references * [PARTITION partition_list] * [WHERE where_condition] * [GROUP BY {col_name | expr | position} * [ASC | DESC], ... [WITH ROLLUP]] * [HAVING where_condition] * [ORDER BY {col_name | expr | position} * [ASC | DESC], ...] * [LIMIT {[offset,] row_count | row_count OFFSET offset}] * [PROCEDURE procedure_name(argument_list)] * [INTO OUTFILE 'file_name' * [CHARACTER SET charset_name] * export_options * | INTO DUMPFILE 'file_name' * | INTO var_name [, var_name]] * [FOR UPDATE | LOCK IN SHARE MODE]] */ class SelectStatement extends Statement { /** * Options for `SELECT` statements and their slot ID. * * @var array<string, int|array<int, int|string>> * @psalm-var array<string, (positive-int|array{positive-int, ('var'|'var='|'expr'|'expr=')})> */ public static $OPTIONS = [ 'ALL' => 1, 'DISTINCT' => 1, 'DISTINCTROW' => 1, 'HIGH_PRIORITY' => 2, 'MAX_STATEMENT_TIME' => [ 3, 'var=', ], 'STRAIGHT_JOIN' => 4, 'SQL_SMALL_RESULT' => 5, 'SQL_BIG_RESULT' => 6, 'SQL_BUFFER_RESULT' => 7, 'SQL_CACHE' => 8, 'SQL_NO_CACHE' => 8, 'SQL_CALC_FOUND_ROWS' => 9, ]; /** * @var array<string, int|array<int, int|string>> * @psalm-var array<string, (positive-int|array{positive-int, ('var'|'var='|'expr'|'expr=')})> */ public static $GROUP_OPTIONS = ['WITH ROLLUP' => 1]; /** * @var array<string, int|array<int, int|string>> * @psalm-var array<string, (positive-int|array{positive-int, ('var'|'var='|'expr'|'expr=')})> */ public static $END_OPTIONS = [ 'FOR UPDATE' => 1, 'LOCK IN SHARE MODE' => 1, ]; /** * The clauses of this statement, in order. * * @see Statement::$CLAUSES * * @var array<string, array<int, int|string>> * @psalm-var array<string, array{non-empty-string, (1|2|3)}> */ public static $CLAUSES = [ 'SELECT' => [ 'SELECT', 2, ], // Used for options. '_OPTIONS' => [ '_OPTIONS', 1, ], // Used for selected expressions. '_SELECT' => [ 'SELECT', 1, ], 'INTO' => [ 'INTO', 3, ], 'FROM' => [ 'FROM', 3, ], 'FORCE' => [ 'FORCE', 1, ], 'USE' => [ 'USE', 1, ], 'IGNORE' => [ 'IGNORE', 3, ], 'PARTITION' => [ 'PARTITION', 3, ], 'JOIN' => [ 'JOIN', 1, ], 'FULL JOIN' => [ 'FULL JOIN', 1, ], 'INNER JOIN' => [ 'INNER JOIN', 1, ], 'LEFT JOIN' => [ 'LEFT JOIN', 1, ], 'LEFT OUTER JOIN' => [ 'LEFT OUTER JOIN', 1, ], 'RIGHT JOIN' => [ 'RIGHT JOIN', 1, ], 'RIGHT OUTER JOIN' => [ 'RIGHT OUTER JOIN', 1, ], 'NATURAL JOIN' => [ 'NATURAL JOIN', 1, ], 'NATURAL LEFT JOIN' => [ 'NATURAL LEFT JOIN', 1, ], 'NATURAL RIGHT JOIN' => [ 'NATURAL RIGHT JOIN', 1, ], 'NATURAL LEFT OUTER JOIN' => [ 'NATURAL LEFT OUTER JOIN', 1, ], 'NATURAL RIGHT OUTER JOIN' => [ 'NATURAL RIGHT JOIN', 1, ], 'WHERE' => [ 'WHERE', 3, ], 'GROUP BY' => [ 'GROUP BY', 3, ], '_GROUP_OPTIONS' => [ '_GROUP_OPTIONS', 1, ], 'HAVING' => [ 'HAVING', 3, ], 'ORDER BY' => [ 'ORDER BY', 3, ], 'LIMIT' => [ 'LIMIT', 3, ], 'PROCEDURE' => [ 'PROCEDURE', 3, ], 'UNION' => [ 'UNION', 1, ], 'EXCEPT' => [ 'EXCEPT', 1, ], 'INTERSECT' => [ 'INTERSECT', 1, ], '_END_OPTIONS' => [ '_END_OPTIONS', 1, ], // These are available only when `UNION` is present. // 'ORDER BY' => ['ORDER BY', 3], // 'LIMIT' => ['LIMIT', 3], ]; /** * Expressions that are being selected by this statement. * * @var (CaseExpression|Expression)[] */ public $expr = []; /** * Tables used as sources for this statement. * * @var Expression[] */ public $from = []; /** * Index hints * * @var IndexHint[]|null */ public $index_hints; /** * Partitions used as source for this statement. * * @var ArrayObj|null */ public $partition; /** * Conditions used for filtering each row of the result set. * * @var Condition[]|null */ public $where; /** * Conditions used for grouping the result set. * * @var GroupKeyword[]|null */ public $group; /** * List of options available for the GROUP BY component. * * @var OptionsArray|null */ public $group_options; /** * Conditions used for filtering the result set. * * @var Condition[]|null */ public $having; /** * Specifies the order of the rows in the result set. * * @var OrderKeyword[]|null */ public $order; /** * Conditions used for limiting the size of the result set. * * @var Limit|null */ public $limit; /** * Procedure that should process the data in the result set. * * @var FunctionCall|null */ public $procedure; /** * Destination of this result set. * * @var IntoKeyword|null */ public $into; /** * Joins. * * @var JoinKeyword[]|null */ public $join; /** * Unions. * * @var SelectStatement[] */ public $union = []; /** * The end options of this query. * * @see static::$END_OPTIONS * * @var OptionsArray|null */ public $end_options; /** * Gets the clauses of this statement. * * @return array<string, array<int, int|string>> * @psalm-return array<string, array{non-empty-string, (1|2|3)}> */ public function getClauses() { // This is a cheap fix for `SELECT` statements that contain `UNION`. // The `ORDER BY` and `LIMIT` clauses should be at the end of the // statement. if (! empty($this->union)) { $clauses = static::$CLAUSES; unset($clauses['ORDER BY'], $clauses['LIMIT']); $clauses['ORDER BY'] = [ 'ORDER BY', 3, ]; $clauses['LIMIT'] = [ 'LIMIT', 3, ]; return $clauses; } return static::$CLAUSES; } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
AlterStatement.php
4590 bytes
0644
AnalyzeStatement.php
744 bytes
0644
BackupStatement.php
631 bytes
0644
CallStatement.php
716 bytes
0644
CheckStatement.php
632 bytes
0644
ChecksumStatement.php
553 bytes
0644
CreateStatement.php
24805 bytes
0644
DeleteStatement.php
11457 bytes
0644
DropStatement.php
1647 bytes
0644
ExplainStatement.php
9290 bytes
0644
InsertStatement.php
7373 bytes
0644
KillStatement.php
5582 bytes
0644
LoadStatement.php
11341 bytes
0644
LockStatement.php
3443 bytes
0644
MaintenanceStatement.php
1501 bytes
0644
NotImplementedStatement.php
1329 bytes
0644
OptimizeStatement.php
748 bytes
0644
PurgeStatement.php
3825 bytes
0644
RenameStatement.php
1391 bytes
0644
RepairStatement.php
674 bytes
0644
ReplaceStatement.php
5091 bytes
0644
RestoreStatement.php
580 bytes
0644
SelectStatement.php
8536 bytes
0644
SetStatement.php
2417 bytes
0644
ShowStatement.php
1386 bytes
0644
TransactionStatement.php
2525 bytes
0644
TruncateStatement.php
854 bytes
0644
UpdateStatement.php
3989 bytes
0644
WithStatement.php
11754 bytes
0644
N4ST4R_ID | Naxtarrr