Skip to content

Commit 389396b

Browse files
committed
Fixed parser so that square brackets count as delimiters
1 parent 8b20282 commit 389396b

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/PHPCR/Util/QOM/Sql2Scanner.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ protected function tokenize(&$tokens, $token)
184184
$buffer = '';
185185
for ($i = 0; $i < strlen($token); $i++) {
186186
$char = trim(substr($token, $i, 1));
187-
if (in_array($char, array('.', ',', '(', ')', '='))) {
187+
if (in_array($char, array('[', ']', '.', ',', '(', ')', '='))) {
188188
if ($buffer !== '') {
189189
$tokens[] = $buffer;
190190
$buffer = '';

src/PHPCR/Util/QOM/Sql2ToQomQueryConverter.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,10 @@ protected function parseLiteralValue()
789789
return $this->parseCastLiteral($token);
790790
}
791791

792+
if ($this->scanner->tokenIs($token, 'NULL')) {
793+
return null;
794+
}
795+
792796
$quoteString = false;
793797
if (substr($token, 0, 1) === '\'') {
794798
$quoteString = "'";
@@ -935,9 +939,9 @@ private function fetchTokenWithoutBrackets()
935939
{
936940
$token = $this->scanner->fetchNextToken();
937941

938-
if (substr($token, 0, 1) === '[' && substr($token, -1) === ']') {
939-
// Remove brackets around the selector name
940-
$token = substr($token, 1, -1);
942+
if ($token === '[') {
943+
$token = $this->scanner->fetchNextToken();
944+
$this->scanner->expectToken(']');
941945
}
942946

943947
return $token;

0 commit comments

Comments
 (0)