summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Desportes <williamdes@wdes.fr>2019-11-01 12:08:09 +0100
committerWilliam Desportes <williamdes@wdes.fr>2019-11-01 12:09:30 +0100
commit4b81f624b2d55d093b89531d35ea4449fddafcae (patch)
tree4b6fd46f53b1cfe93d5301f676402ee1d8cb35ee /src
parent49731d2db2e45f967d3b1c103958f6d9f189e543 (diff)
parentccb20a1c7c1cbe75645f9d19a908bed4c98672fd (diff)
downloadsql-parser-4b81f624b2d55d093b89531d35ea4449fddafcae.zip
sql-parser-4b81f624b2d55d093b89531d35ea4449fddafcae.tar.gz
sql-parser-4b81f624b2d55d093b89531d35ea4449fddafcae.tar.bz2
Merge #265 - Fix wrong parsing of partitions
Fixes: phpmyadmin/phpmyadmin#13951 Signed-off-by: William Desportes <williamdes@wdes.fr>
Diffstat (limited to 'src')
-rw-r--r--src/Components/PartitionDefinition.php14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Components/PartitionDefinition.php b/src/Components/PartitionDefinition.php
index 71f73b8..53da148 100644
--- a/src/Components/PartitionDefinition.php
+++ b/src/Components/PartitionDefinition.php
@@ -170,10 +170,16 @@ class PartitionDefinition extends Component
$ret->name = $token->value;
// Looking ahead for a 'VALUES' keyword.
- $idx = $list->idx;
- $list->getNext();
- $nextToken = $list->getNext();
- $list->idx = $idx;
+ // Loop until the end of the partition name (delimited by a whitespace)
+ while ($nextToken = $list->tokens[++$list->idx]) {
+ if ($nextToken->type !== Token::TYPE_NONE) {
+ break;
+ }
+ $ret->name .= $nextToken->value;
+ }
+ $idx = $list->idx--;
+ // Get the first token after the white space.
+ $nextToken = $list->tokens[++$idx];
$state = ($nextToken->type === Token::TYPE_KEYWORD)
&& ($nextToken->value === 'VALUES')