summaryrefslogtreecommitdiffstats
path: root/src/Statements/CreateStatement.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Statements/CreateStatement.php')
-rw-r--r--src/Statements/CreateStatement.php216
1 files changed, 106 insertions, 110 deletions
diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php
index d3bf3bd..64ea57d 100644
--- a/src/Statements/CreateStatement.php
+++ b/src/Statements/CreateStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `CREATE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -20,10 +20,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `CREATE` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CreateStatement extends Statement
{
@@ -32,25 +28,25 @@ class CreateStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
// CREATE TABLE
'TEMPORARY' => 1,
// CREATE VIEW
'OR REPLACE' => 2,
- 'ALGORITHM' => array(
+ 'ALGORITHM' => [
3,
'var=',
- ),
+ ],
// `DEFINER` is also used for `CREATE FUNCTION / PROCEDURE`
- 'DEFINER' => array(
+ 'DEFINER' => [
4,
'expr=',
- ),
- 'SQL SECURITY' => array(
+ ],
+ 'SQL SECURITY' => [
5,
'var',
- ),
+ ],
'DATABASE' => 6,
'EVENT' => 6,
@@ -69,159 +65,159 @@ class CreateStatement extends Statement
'SCHEMA' => 6,
// CREATE TABLE
- 'IF NOT EXISTS' => 7
- );
+ 'IF NOT EXISTS' => 7,
+ ];
/**
* All database options.
*
* @var array
*/
- public static $DB_OPTIONS = array(
- 'CHARACTER SET' => array(
+ public static $DB_OPTIONS = [
+ 'CHARACTER SET' => [
1,
'var=',
- ),
- 'CHARSET' => array(
+ ],
+ 'CHARSET' => [
1,
'var=',
- ),
- 'DEFAULT CHARACTER SET' => array(
+ ],
+ 'DEFAULT CHARACTER SET' => [
1,
'var=',
- ),
- 'DEFAULT CHARSET' => array(
+ ],
+ 'DEFAULT CHARSET' => [
1,
'var=',
- ),
- 'DEFAULT COLLATE' => array(
+ ],
+ 'DEFAULT COLLATE' => [
2,
'var=',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
2,
'var=',
- )
- );
+ ],
+ ];
/**
* All table options.
*
* @var array
*/
- public static $TABLE_OPTIONS = array(
- 'ENGINE' => array(
+ public static $TABLE_OPTIONS = [
+ 'ENGINE' => [
1,
'var=',
- ),
- 'AUTO_INCREMENT' => array(
+ ],
+ 'AUTO_INCREMENT' => [
2,
'var=',
- ),
- 'AVG_ROW_LENGTH' => array(
+ ],
+ 'AVG_ROW_LENGTH' => [
3,
'var',
- ),
- 'CHARACTER SET' => array(
+ ],
+ 'CHARACTER SET' => [
4,
'var=',
- ),
- 'CHARSET' => array(
+ ],
+ 'CHARSET' => [
4,
'var=',
- ),
- 'DEFAULT CHARACTER SET' => array(
+ ],
+ 'DEFAULT CHARACTER SET' => [
4,
'var=',
- ),
- 'DEFAULT CHARSET' => array(
+ ],
+ 'DEFAULT CHARSET' => [
4,
'var=',
- ),
- 'CHECKSUM' => array(
+ ],
+ 'CHECKSUM' => [
5,
'var',
- ),
- 'DEFAULT COLLATE' => array(
+ ],
+ 'DEFAULT COLLATE' => [
6,
'var=',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
6,
'var=',
- ),
- 'COMMENT' => array(
+ ],
+ 'COMMENT' => [
7,
'var=',
- ),
- 'CONNECTION' => array(
+ ],
+ 'CONNECTION' => [
8,
'var',
- ),
- 'DATA DIRECTORY' => array(
+ ],
+ 'DATA DIRECTORY' => [
9,
'var',
- ),
- 'DELAY_KEY_WRITE' => array(
+ ],
+ 'DELAY_KEY_WRITE' => [
10,
'var',
- ),
- 'INDEX DIRECTORY' => array(
+ ],
+ 'INDEX DIRECTORY' => [
11,
'var',
- ),
- 'INSERT_METHOD' => array(
+ ],
+ 'INSERT_METHOD' => [
12,
'var',
- ),
- 'KEY_BLOCK_SIZE' => array(
+ ],
+ 'KEY_BLOCK_SIZE' => [
13,
'var',
- ),
- 'MAX_ROWS' => array(
+ ],
+ 'MAX_ROWS' => [
14,
'var',
- ),
- 'MIN_ROWS' => array(
+ ],
+ 'MIN_ROWS' => [
15,
'var',
- ),
- 'PACK_KEYS' => array(
+ ],
+ 'PACK_KEYS' => [
16,
'var',
- ),
- 'PASSWORD' => array(
+ ],
+ 'PASSWORD' => [
17,
'var',
- ),
- 'ROW_FORMAT' => array(
+ ],
+ 'ROW_FORMAT' => [
18,
'var',
- ),
- 'TABLESPACE' => array(
+ ],
+ 'TABLESPACE' => [
19,
'var',
- ),
- 'STORAGE' => array(
+ ],
+ 'STORAGE' => [
20,
'var',
- ),
- 'UNION' => array(
+ ],
+ 'UNION' => [
21,
'var',
- )
- );
+ ],
+ ];
/**
* All function options.
*
* @var array
*/
- public static $FUNC_OPTIONS = array(
- 'COMMENT' => array(
+ public static $FUNC_OPTIONS = [
+ 'COMMENT' => [
1,
'var=',
- ),
+ ],
'LANGUAGE SQL' => 2,
'DETERMINISTIC' => 3,
'NOT DETERMINISTIC' => 3,
@@ -229,24 +225,24 @@ class CreateStatement extends Statement
'NO SQL' => 4,
'READS SQL DATA' => 4,
'MODIFIES SQL DATA' => 4,
- 'SQL SECURITY DEFINER' => array(
+ 'SQL SECURITY DEFINER' => [
5,
'var',
- )
- );
+ ],
+ ];
/**
* All trigger options.
*
* @var array
*/
- public static $TRIGGER_OPTIONS = array(
+ public static $TRIGGER_OPTIONS = [
'BEFORE' => 1,
'AFTER' => 1,
'INSERT' => 2,
'UPDATE' => 2,
- 'DELETE' => 2
- );
+ 'DELETE' => 2,
+ ];
/**
* The name of the entity that is created.
@@ -262,11 +258,11 @@ class CreateStatement extends Statement
*
* Used by `CREATE TABLE`, `CREATE FUNCTION` and `CREATE PROCEDURE`.
*
- * @var OptionsArray
- *
* @see static::$TABLE_OPTIONS
* @see static::$FUNC_OPTIONS
* @see static::$TRIGGER_OPTIONS
+ *
+ * @var OptionsArray
*/
public $entityOptions;
@@ -368,7 +364,7 @@ class CreateStatement extends Statement
*
* @var Token[]|string
*/
- public $body = array();
+ public $body = [];
/**
* @return string
@@ -389,12 +385,12 @@ class CreateStatement extends Statement
. Expression::build($this->name) . ' '
. OptionsArray::build($this->entityOptions);
} elseif ($this->options->has('TABLE')) {
- if (! is_null($this->select)) {
+ if ($this->select !== null) {
return 'CREATE '
. OptionsArray::build($this->options) . ' '
. Expression::build($this->name) . ' '
. $this->select->build();
- } elseif (! is_null($this->like)) {
+ } elseif ($this->like !== null) {
return 'CREATE '
. OptionsArray::build($this->options) . ' '
. Expression::build($this->name) . ' LIKE '
@@ -478,10 +474,10 @@ class CreateStatement extends Statement
$this->name = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => $fieldName,
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
if (! isset($this->name) || ($this->name === '')) {
@@ -528,13 +524,13 @@ class CreateStatement extends Statement
$this->like = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
// The 'LIKE' keyword was found, but no table_name was found next to it
- if (is_null($this->like)) {
+ if ($this->like === null) {
$parser->error(
'A table name was expected.',
$list->tokens[$list->idx]
@@ -626,7 +622,7 @@ class CreateStatement extends Statement
}
// Building the expression used for partitioning.
- $this->$field .= ($token->type === Token::TYPE_WHITESPACE) ? ' ' : $token->token;
+ $this->$field .= $token->type === Token::TYPE_WHITESPACE ? ' ' : $token->token;
// Last bracket was read, the expression ended.
// Comparing with `0` and not `false`, because `false` means
@@ -641,9 +637,9 @@ class CreateStatement extends Statement
$this->partitions = ArrayObj::parse(
$parser,
$list,
- array(
- 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition'
- )
+ [
+ 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition',
+ ]
);
}
break;
@@ -657,10 +653,10 @@ class CreateStatement extends Statement
if ($this->options->has('FUNCTION')) {
$prev_token = $token;
$token = $list->getNextOfType(Token::TYPE_KEYWORD);
- if (is_null($token) || $token->keyword !== 'RETURNS') {
+ if ($token === null || $token->keyword !== 'RETURNS') {
$parser->error(
'A "RETURNS" keyword was expected.',
- is_null($token) ? $prev_token : $token
+ $token ?? $prev_token
);
} else {
++$list->idx;
@@ -718,10 +714,10 @@ class CreateStatement extends Statement
$this->table = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
++$list->idx;