diff options
Diffstat (limited to 'src/Components/AlterOperation.php')
-rw-r--r-- | src/Components/AlterOperation.php | 104 |
1 files changed, 74 insertions, 30 deletions
diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php index e3893f7..25a62a5 100644 --- a/src/Components/AlterOperation.php +++ b/src/Components/AlterOperation.php @@ -25,28 +25,67 @@ class AlterOperation extends Component * * @var array */ - public static $DB_OPTIONS = array( - 'CHARACTER SET' => array(1, 'var'), - 'CHARSET' => array(1, 'var'), - 'DEFAULT CHARACTER SET' => array(1, 'var'), - 'DEFAULT CHARSET' => array(1, 'var'), - 'UPGRADE' => array(1, 'var'), - 'COLLATE' => array(2, 'var'), - 'DEFAULT COLLATE' => array(2, 'var'), - ); + public static $DB_OPTIONS = [ + 'CHARACTER SET' => [ + 1, + 'var', + ], + 'CHARSET' => [ + 1, + 'var', + ], + 'DEFAULT CHARACTER SET' => [ + 1, + 'var', + ], + 'DEFAULT CHARSET' => [ + 1, + 'var', + ], + 'UPGRADE' => [ + 1, + 'var', + ], + 'COLLATE' => [ + 2, + 'var', + ], + 'DEFAULT COLLATE' => [ + 2, + 'var', + ], + ]; /** * All table options. * * @var array */ - public static $TABLE_OPTIONS = array( - 'ENGINE' => array(1, 'var='), - 'AUTO_INCREMENT' => array(1, 'var='), - 'AVG_ROW_LENGTH' => array(1, 'var'), - 'MAX_ROWS' => array(1, 'var'), - 'ROW_FORMAT' => array(1, 'var'), - 'COMMENT' => array(1, 'var'), + public static $TABLE_OPTIONS = [ + 'ENGINE' => [ + 1, + 'var=', + ], + 'AUTO_INCREMENT' => [ + 1, + 'var=', + ], + 'AVG_ROW_LENGTH' => [ + 1, + 'var', + ], + 'MAX_ROWS' => [ + 1, + 'var', + ], + 'ROW_FORMAT' => [ + 1, + 'var', + ], + 'COMMENT' => [ + 1, + 'var', + ], 'ADD' => 1, 'ALTER' => 1, 'ANALYZE' => 1, @@ -84,16 +123,16 @@ class AlterOperation extends Component 'SPATIAL' => 2, 'TABLESPACE' => 2, 'INDEX' => 2, - ); + ]; /** * All view options. * * @var array */ - public static $VIEW_OPTIONS = array( + public static $VIEW_OPTIONS = [ 'AS' => 1, - ); + ]; /** * Options of this operation. @@ -114,7 +153,7 @@ class AlterOperation extends Component * * @var Token[]|string */ - public $unknown = array(); + public $unknown = []; /** * Constructor. @@ -126,7 +165,7 @@ class AlterOperation extends Component public function __construct( $options = null, $field = null, - $unknown = array() + $unknown = [] ) { $this->options = $options; $this->field = $field; @@ -140,7 +179,7 @@ class AlterOperation extends Component * * @return AlterOperation */ - public static function parse(Parser $parser, TokensList $list, array $options = array()) + public static function parse(Parser $parser, TokensList $list, array $options = []) { $ret = new self(); @@ -212,10 +251,10 @@ class AlterOperation extends Component $ret->field = Expression::parse( $parser, $list, - array( + [ 'breakOnAlias' => true, 'parseField' => 'column', - ) + ] ); if ($ret->field === null) { // No field was read. We go back one token so the next @@ -232,11 +271,11 @@ class AlterOperation extends Component } elseif (($token->value === ',') && ($brackets === 0)) { break; } - } elseif (!empty(Parser::$STATEMENT_PARSERS[$token->value])) { + } elseif (! empty(Parser::$STATEMENT_PARSERS[$token->value])) { // We have reached the end of ALTER operation and suddenly found // a start to new statement, but have not find a delimiter between them - if (!($token->value === 'SET' && $list->tokens[$list->idx - 1]->value === 'CHARACTER')) { + if (! ($token->value === 'SET' && $list->tokens[$list->idx - 1]->value === 'CHARACTER')) { $parser->error( 'A new statement was found, but no delimiter between it and the previous one.', $token @@ -245,7 +284,7 @@ class AlterOperation extends Component } } elseif (array_key_exists($token->value, self::$DB_OPTIONS) || (array_key_exists($token->value, self::$TABLE_OPTIONS) - && !self::checkIfColumnDefinitionKeyword($token->value)) + && ! self::checkIfColumnDefinitionKeyword($token->value)) ) { // This alter operation has finished, which means a comma was missing before start of new alter operation $parser->error( @@ -276,7 +315,7 @@ class AlterOperation extends Component * * @return string */ - public static function build($component, array $options = array()) + public static function build($component, array $options = []) { $ret = $component->options . ' '; if ((isset($component->field)) && ($component->field !== '')) { @@ -293,8 +332,13 @@ class AlterOperation extends Component * * @param string $tokenValue Value of current token */ - private static function checkIfColumnDefinitionKeyword($tokenValue) { - $common_options = array('AUTO_INCREMENT', 'COMMENT', 'DEFAULT'); + private static function checkIfColumnDefinitionKeyword($tokenValue) + { + $common_options = [ + 'AUTO_INCREMENT', + 'COMMENT', + 'DEFAULT', + ]; // Since AUTO_INCREMENT and COMMENT can be used for // both table as well as a specific column in the table return in_array($tokenValue, $common_options); |