Skip to content

Commit e670ae4

Browse files
committed
Added dummy parsers for CREATE USER and SET PASSWORD statements.
1 parent 991fe54 commit e670ae4

File tree

8 files changed

+22
-7
lines changed

8 files changed

+22
-7
lines changed

src/Contexts/ContextMySql50000.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class ContextMySql50000 extends Context
151151
'RIGHT JOIN' => 7,
152152
'LINEAR HASH' => 7,
153153
'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7,
154-
'SQL SECURITY' => 7,
154+
'SET PASSWORD' => 7, 'SQL SECURITY' => 7,
155155
'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7,
156156
'DATA DIRECTORY' => 7,
157157
'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7,

src/Contexts/ContextMySql50100.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class ContextMySql50100 extends Context
164164
'RIGHT JOIN' => 7,
165165
'LINEAR HASH' => 7,
166166
'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7,
167-
'SQL SECURITY' => 7,
167+
'SET PASSWORD' => 7, 'SQL SECURITY' => 7,
168168
'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7,
169169
'DATA DIRECTORY' => 7,
170170
'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7,

src/Contexts/ContextMySql50500.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ class ContextMySql50500 extends Context
169169
'RIGHT JOIN' => 7,
170170
'LINEAR HASH' => 7,
171171
'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7,
172-
'SQL SECURITY' => 7,
172+
'SET PASSWORD' => 7, 'SQL SECURITY' => 7,
173173
'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7,
174174
'DATA DIRECTORY' => 7,
175175
'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7,

src/Contexts/ContextMySql50600.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class ContextMySql50600 extends Context
174174
'RIGHT JOIN' => 7,
175175
'LINEAR HASH' => 7,
176176
'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7,
177-
'SQL SECURITY' => 7,
177+
'SET PASSWORD' => 7, 'SQL SECURITY' => 7,
178178
'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7,
179179
'DATA DIRECTORY' => 7,
180180
'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7,

src/Contexts/ContextMySql50700.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ class ContextMySql50700 extends Context
182182
'RIGHT JOIN' => 7,
183183
'LINEAR HASH' => 7,
184184
'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'PARTITION BY' => 7,
185-
'SQL SECURITY' => 7,
185+
'SET PASSWORD' => 7, 'SQL SECURITY' => 7,
186186
'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7,
187187
'DATA DIRECTORY' => 7,
188188
'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7,

src/Parser.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,11 @@ class Parser
3737
// MySQL Utility Statements
3838
'EXPLAIN' => 'SqlParser\\Statements\\ExplainStatement',
3939
'DESCRIBE' => 'SqlParser\\Statements\\ExplainStatement',
40+
'GRANT' => '',
4041
'HELP' => '',
41-
'USE' => '',
42+
'SET PASSWORD' => '',
4243
'STATUS' => '',
43-
'GRANT' => '',
44+
'USE' => '',
4445

4546
// Table Maintenance Statements
4647
// https://dev.mysql.com/doc/refman/5.7/en/table-maintenance-sql.html

src/Statements/CreateStatement.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,11 @@ public function build()
314314
. Expression::build($this->name) . ' '
315315
. ParameterDefinition::build($this->parameters) . ' '
316316
. $tmp . ' ' . TokensList::build($this->body);
317+
} else {
318+
return 'CREATE '
319+
. OptionsArray::build($this->options) . ' '
320+
. Expression::build($this->name) . ' '
321+
. TokensList::build($this->body);
317322
}
318323
return '';
319324
}
@@ -547,6 +552,14 @@ public function parse(Parser $parser, TokensList $list)
547552
$token = $list->tokens[$list->idx];
548553
$this->body[] = $token;
549554
}
555+
} else {
556+
for (; $list->idx < $list->count; ++$list->idx) {
557+
$token = $list->tokens[$list->idx];
558+
if ($token->type === Token::TYPE_DELIMITER) {
559+
break;
560+
}
561+
$this->body[] = $token;
562+
}
550563
}
551564
}
552565
}

tools/contexts/_common.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ SELECT TRANSACTION
6868
SERIAL (D)
6969
SET (D)
7070
SET NULL
71+
SET PASSWORD
7172
SMALLINT (D)
7273
SPATIAL INDEX (K)
7374
SPATIAL KEY (K)

0 commit comments

Comments
 (0)