Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
php /
PhpMyAdmin /
SqlParser /
Components /
Delete
Unzip
Name
Size
Permission
Date
Action
AlterOperation.php
15.26
KB
-rw-r--r--
2023-01-25 10:43
Array2d.php
3.39
KB
-rw-r--r--
2023-01-25 10:43
ArrayObj.php
4.85
KB
-rw-r--r--
2023-01-25 10:43
CaseExpression.php
9.7
KB
-rw-r--r--
2023-01-25 10:43
Condition.php
6.01
KB
-rw-r--r--
2023-01-25 10:43
CreateDefinition.php
10.57
KB
-rw-r--r--
2023-01-25 10:43
DataType.php
4.71
KB
-rw-r--r--
2023-01-25 10:43
Expression.php
15.6
KB
-rw-r--r--
2023-01-25 10:43
ExpressionArray.php
3.91
KB
-rw-r--r--
2023-01-25 10:43
FunctionCall.php
2.94
KB
-rw-r--r--
2023-01-25 10:43
GroupKeyword.php
3.34
KB
-rw-r--r--
2023-01-25 10:43
IndexHint.php
6.31
KB
-rw-r--r--
2023-01-25 10:43
IntoKeyword.php
8.34
KB
-rw-r--r--
2023-01-25 10:43
JoinKeyword.php
6.15
KB
-rw-r--r--
2023-01-25 10:43
Key.php
9.16
KB
-rw-r--r--
2023-01-25 10:43
Limit.php
3.06
KB
-rw-r--r--
2023-01-25 10:43
LockExpression.php
5.62
KB
-rw-r--r--
2023-01-25 10:43
OptionsArray.php
12.07
KB
-rw-r--r--
2023-01-25 10:43
OrderKeyword.php
3.46
KB
-rw-r--r--
2023-01-25 10:43
ParameterDefinition.php
4.54
KB
-rw-r--r--
2023-01-25 10:43
PartitionDefinition.php
6.97
KB
-rw-r--r--
2023-01-25 10:43
Reference.php
3.95
KB
-rw-r--r--
2023-01-25 10:43
RenameOperation.php
4.45
KB
-rw-r--r--
2023-01-25 10:43
SetOperation.php
4.15
KB
-rw-r--r--
2023-01-25 10:43
UnionKeyword.php
674
B
-rw-r--r--
2023-01-25 10:43
WithKeyword.php
1.29
KB
-rw-r--r--
2023-01-25 10:43
Save
Rename
<?php declare(strict_types=1); namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; use function implode; use function strtolower; use function strtoupper; use function trim; /** * Parses a data type. * * @final */ class DataType extends Component { /** * All data type options. * * @var array<string, int|array<int, int|string>> * @psalm-var array<string, (positive-int|array{positive-int, ('var'|'var='|'expr'|'expr=')})> */ public static $DATA_TYPE_OPTIONS = [ 'BINARY' => 1, 'CHARACTER SET' => [ 2, 'var', ], 'CHARSET' => [ 2, 'var', ], 'COLLATE' => [ 3, 'var', ], 'UNSIGNED' => 4, 'ZEROFILL' => 5, ]; /** * The name of the data type. * * @var string */ public $name; /** * The parameters of this data type. * * Some data types have no parameters. * Numeric types might have parameters for the maximum number of digits, * precision, etc. * String types might have parameters for the maximum length stored. * `ENUM` and `SET` have parameters for possible values. * * For more information, check the MySQL manual. * * @var int[]|string[] */ public $parameters = []; /** * The options of this data type. * * @var OptionsArray */ public $options; /** * @param string $name the name of this data type * @param int[]|string[] $parameters the parameters (size or possible values) * @param OptionsArray $options the options of this data type */ public function __construct( $name = null, array $parameters = [], $options = null ) { $this->name = $name; $this->parameters = $parameters; $this->options = $options; } /** * @param Parser $parser the parser that serves as context * @param TokensList $list the list of tokens that are being parsed * @param array<string, mixed> $options parameters for parsing * * @return DataType|null */ public static function parse(Parser $parser, TokensList $list, array $options = []) { $ret = new static(); /** * The state of the parser. * * Below are the states of the parser. * * 0 -------------------[ data type ]--------------------> 1 * * 1 ----------------[ size and options ]----------------> 2 * * @var int */ $state = 0; for (; $list->idx < $list->count; ++$list->idx) { /** * Token parsed at this moment. */ $token = $list->tokens[$list->idx]; // Skipping whitespaces and comments. if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { continue; } if ($state === 0) { $ret->name = strtoupper((string) $token->value); if (($token->type !== Token::TYPE_KEYWORD) || (! ($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) { $parser->error('Unrecognized data type.', $token); } $state = 1; } elseif ($state === 1) { if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { $parameters = ArrayObj::parse($parser, $list); ++$list->idx; $ret->parameters = ($ret->name === 'ENUM') || ($ret->name === 'SET') ? $parameters->raw : $parameters->values; } $ret->options = OptionsArray::parse($parser, $list, static::$DATA_TYPE_OPTIONS); ++$list->idx; break; } } if (empty($ret->name)) { return null; } --$list->idx; return $ret; } /** * @param DataType $component the component to be built * @param array<string, mixed> $options parameters for building * * @return string */ public static function build($component, array $options = []) { $name = empty($options['lowercase']) ? $component->name : strtolower($component->name); $parameters = ''; if (! empty($component->parameters)) { $parameters = '(' . implode(',', $component->parameters) . ')'; } return trim($name . $parameters . ' ' . $component->options); } }