diff options
author | William Desportes <williamdes@wdes.fr> | 2019-11-01 12:08:09 +0100 |
---|---|---|
committer | William Desportes <williamdes@wdes.fr> | 2019-11-01 12:09:30 +0100 |
commit | 4b81f624b2d55d093b89531d35ea4449fddafcae (patch) | |
tree | 4b6fd46f53b1cfe93d5301f676402ee1d8cb35ee /src | |
parent | 49731d2db2e45f967d3b1c103958f6d9f189e543 (diff) | |
parent | ccb20a1c7c1cbe75645f9d19a908bed4c98672fd (diff) | |
download | sql-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.php | 14 |
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') |