summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Contexts/ContextMySql50000.php2
-rw-r--r--src/Contexts/ContextMySql50100.php2
-rw-r--r--src/Contexts/ContextMySql50500.php2
-rw-r--r--src/Contexts/ContextMySql50600.php2
-rw-r--r--src/Contexts/ContextMySql50700.php2
-rw-r--r--src/Parser.php5
-rw-r--r--src/Statements/CreateStatement.php13
-rw-r--r--tools/contexts/_common.txt1
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)