diff options
-rw-r--r-- | src/Contexts/ContextMySql50000.php | 2 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50100.php | 2 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50500.php | 2 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50600.php | 2 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50700.php | 2 | ||||
-rw-r--r-- | src/Parser.php | 5 | ||||
-rw-r--r-- | src/Statements/CreateStatement.php | 13 | ||||
-rw-r--r-- | tools/contexts/_common.txt | 1 |
8 files changed, 22 insertions, 7 deletions
diff --git a/src/Contexts/ContextMySql50000.php b/src/Contexts/ContextMySql50000.php index 01090b3..2df5326 100644 --- a/src/Contexts/ContextMySql50000.php +++ b/src/Contexts/ContextMySql50000.php @@ -151,7 +151,7 @@ class ContextMySql50000 extends Context 'RIGHT JOIN' => 7, 'LINEAR HASH' => 7, 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7, - 'SQL SECURITY' => 7, + 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, diff --git a/src/Contexts/ContextMySql50100.php b/src/Contexts/ContextMySql50100.php index b10ff1c..3779c0e 100644 --- a/src/Contexts/ContextMySql50100.php +++ b/src/Contexts/ContextMySql50100.php @@ -164,7 +164,7 @@ class ContextMySql50100 extends Context 'RIGHT JOIN' => 7, 'LINEAR HASH' => 7, 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7, - 'SQL SECURITY' => 7, + 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, diff --git a/src/Contexts/ContextMySql50500.php b/src/Contexts/ContextMySql50500.php index c7faa84..a8cd9e7 100644 --- a/src/Contexts/ContextMySql50500.php +++ b/src/Contexts/ContextMySql50500.php @@ -169,7 +169,7 @@ class ContextMySql50500 extends Context 'RIGHT JOIN' => 7, 'LINEAR HASH' => 7, 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7, - 'SQL SECURITY' => 7, + 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, diff --git a/src/Contexts/ContextMySql50600.php b/src/Contexts/ContextMySql50600.php index 9854d37..d7b0080 100644 --- a/src/Contexts/ContextMySql50600.php +++ b/src/Contexts/ContextMySql50600.php @@ -174,7 +174,7 @@ class ContextMySql50600 extends Context 'RIGHT JOIN' => 7, 'LINEAR HASH' => 7, 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7, - 'SQL SECURITY' => 7, + 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, diff --git a/src/Contexts/ContextMySql50700.php b/src/Contexts/ContextMySql50700.php index a308f5a..1235524 100644 --- a/src/Contexts/ContextMySql50700.php +++ b/src/Contexts/ContextMySql50700.php @@ -182,7 +182,7 @@ class ContextMySql50700 extends Context 'RIGHT JOIN' => 7, 'LINEAR HASH' => 7, 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7, - 'SQL SECURITY' => 7, + 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, diff --git a/src/Parser.php b/src/Parser.php index 4646ed2..5af0e6c 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -37,10 +37,11 @@ class Parser // MySQL Utility Statements 'EXPLAIN' => 'SqlParser\\Statements\\ExplainStatement', 'DESCRIBE' => 'SqlParser\\Statements\\ExplainStatement', + 'GRANT' => '', 'HELP' => '', - 'USE' => '', + 'SET PASSWORD' => '', 'STATUS' => '', - 'GRANT' => '', + 'USE' => '', // Table Maintenance Statements // https://dev.mysql.com/doc/refman/5.7/en/table-maintenance-sql.html diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php index 1a46b56..fe6693b 100644 --- a/src/Statements/CreateStatement.php +++ b/src/Statements/CreateStatement.php @@ -314,6 +314,11 @@ class CreateStatement extends Statement . Expression::build($this->name) . ' ' . ParameterDefinition::build($this->parameters) . ' ' . $tmp . ' ' . TokensList::build($this->body); + } else { + return 'CREATE ' + . OptionsArray::build($this->options) . ' ' + . Expression::build($this->name) . ' ' + . TokensList::build($this->body); } return ''; } @@ -547,6 +552,14 @@ class CreateStatement extends Statement $token = $list->tokens[$list->idx]; $this->body[] = $token; } + } else { + for (; $list->idx < $list->count; ++$list->idx) { + $token = $list->tokens[$list->idx]; + if ($token->type === Token::TYPE_DELIMITER) { + break; + } + $this->body[] = $token; + } } } } diff --git a/tools/contexts/_common.txt b/tools/contexts/_common.txt index 246fc07..15ca051 100644 --- a/tools/contexts/_common.txt +++ b/tools/contexts/_common.txt @@ -68,6 +68,7 @@ SELECT TRANSACTION SERIAL (D) SET (D) SET NULL +SET PASSWORD SMALLINT (D) SPATIAL INDEX (K) SPATIAL KEY (K) |