Skip to content

Commit 229f681

Browse files
committed
Make sure keywords are single upper words
1 parent f9f2468 commit 229f681

5 files changed

+38
-24
lines changed

src/Tokenizer.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ final class Tokenizer
5050
'CASE',
5151
'CHANGE',
5252
'CHANGED',
53-
'CHARACTER SET',
53+
'CHARACTER',
5454
'CHARSET',
5555
'CHECK',
5656
'CHECKSUM',
@@ -68,7 +68,7 @@ final class Tokenizer
6868
'CONVERT',
6969
'CREATE',
7070
'CROSS',
71-
'CURRENT ROW',
71+
'CURRENT',
7272
'CURRENT_TIMESTAMP',
7373
'DATABASE',
7474
'DATABASES',
@@ -182,17 +182,16 @@ final class Tokenizer
182182
'MYISAM',
183183
'NAMES',
184184
'NATURAL',
185-
'NO OTHERS',
185+
'NO',
186186
'NOT',
187187
'NULL',
188188
'OFFSET',
189189
'ON',
190-
'ON DELETE',
191-
'ON UPDATE',
192190
'OPEN',
193191
'OPTIMIZE',
194192
'OPTION',
195193
'OPTIONALLY',
194+
'OTHERS',
196195
'OUTFILE',
197196
'OVER',
198197
'PACK_KEYS',
@@ -242,6 +241,7 @@ final class Tokenizer
242241
'SEPARATOR',
243242
'SERIALIZABLE',
244243
'SESSION',
244+
'SET',
245245
'SHARE',
246246
'SHOW',
247247
'SHUTDOWN',

tests/TokenizerTest.php

+14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
use PHPUnit\Framework\TestCase;
1010
use ReflectionClass;
1111

12+
use function array_filter;
13+
use function preg_match;
1214
use function sort;
15+
use function strtoupper;
1316

1417
final class TokenizerTest extends TestCase
1518
{
@@ -44,6 +47,17 @@ public function testInternalKeywordListsAreSortedForEasierMaintenance(): void
4447
}
4548
}
4649

50+
public function testKeywordsReservedAreSingleUpperWord(): void
51+
{
52+
$tokenizerReserved = $this->getTokenizerList('reserved');
53+
54+
$kwsDiff = array_filter($tokenizerReserved, static function ($v) {
55+
return $v !== strtoupper($v) || preg_match('~^\w+$~', $v) !== 1;
56+
});
57+
58+
self::assertSame([], $kwsDiff);
59+
}
60+
4761
#[DoesNotPerformAssertions]
4862
public function testThereAreNoRegressions(): void
4963
{

tests/clihighlight.txt

+7-7
Original file line numberDiff line numberDiff line change
@@ -915,31 +915,31 @@
915915
c
916916
GROUPS
917917
BETWEEN UNBOUNDED PRECEDING
918-
AND CURRENT ROW
919-
EXCLUDE NO OTHERS
918+
AND CURRENT ROW
919+
EXCLUDE NO OTHERS
920920
) AS no_others,
921921
GROUP_CONCAT(b, '.') OVER (
922922
ORDER BY
923923
c
924924
GROUPS
925925
BETWEEN UNBOUNDED PRECEDING
926-
AND CURRENT ROW
927-
EXCLUDE CURRENT ROW
926+
AND CURRENT ROW
927+
EXCLUDE CURRENT ROW
928928
) AS current_row,
929929
GROUP_CONCAT(b, '.') OVER (
930930
ORDER BY
931931
c
932932
GROUPS
933933
BETWEEN UNBOUNDED PRECEDING
934-
AND CURRENT ROW
934+
AND CURRENT ROW
935935
EXCLUDE GROUP
936936
) AS grp,
937937
GROUP_CONCAT(b, '.') OVER (
938938
ORDER BY
939939
c
940940
GROUPS
941941
BETWEEN UNBOUNDED PRECEDING
942-
AND CURRENT ROW
942+
AND CURRENT ROW
943943
EXCLUDE TIES
944944
) AS tie,
945945
GROUP_CONCAT(b, '.') FILTER (
@@ -990,7 +990,7 @@
990990
ORDER BY
991991
RevenueYear
992992
ROWS
993-
BETWEEN CURRENT ROW
993+
BETWEEN CURRENT ROW
994994
AND UNBOUNDED FOLLOWING
995995
) AS MinRevenueBeyond
996996
FROM

tests/format-highlight.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -915,31 +915,31 @@
915915
<span style="color: #333;">c</span>
916916
<span style="font-weight:bold;">GROUPS</span>
917917
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">UNBOUNDED</span> <span style="font-weight:bold;">PRECEDING</span>
918-
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT ROW</span>
919-
<span style="font-weight:bold;">EXCLUDE</span> <span style="font-weight:bold;">NO OTHERS</span>
918+
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
919+
<span style="font-weight:bold;">EXCLUDE</span> <span style="color: #333;">NO</span> <span style="color: #333;">OTHERS</span>
920920
) <span style="font-weight:bold;">AS</span> <span style="color: #333;">no_others</span><span >,</span>
921921
<span style="font-weight:bold;">GROUP_CONCAT</span>(<span style="color: #333;">b</span><span >,</span> <span style="color: blue;">'.'</span>) <span style="font-weight:bold;">OVER</span> (
922922
<span style="font-weight:bold;">ORDER BY</span>
923923
<span style="color: #333;">c</span>
924924
<span style="font-weight:bold;">GROUPS</span>
925925
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">UNBOUNDED</span> <span style="font-weight:bold;">PRECEDING</span>
926-
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT ROW</span>
927-
<span style="font-weight:bold;">EXCLUDE</span> <span style="font-weight:bold;">CURRENT ROW</span>
926+
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
927+
<span style="font-weight:bold;">EXCLUDE</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
928928
) <span style="font-weight:bold;">AS</span> <span style="color: #333;">current_row</span><span >,</span>
929929
<span style="font-weight:bold;">GROUP_CONCAT</span>(<span style="color: #333;">b</span><span >,</span> <span style="color: blue;">'.'</span>) <span style="font-weight:bold;">OVER</span> (
930930
<span style="font-weight:bold;">ORDER BY</span>
931931
<span style="color: #333;">c</span>
932932
<span style="font-weight:bold;">GROUPS</span>
933933
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">UNBOUNDED</span> <span style="font-weight:bold;">PRECEDING</span>
934-
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT ROW</span>
934+
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
935935
<span style="font-weight:bold;">EXCLUDE</span> <span style="font-weight:bold;">GROUP</span>
936936
) <span style="font-weight:bold;">AS</span> <span style="color: #333;">grp</span><span >,</span>
937937
<span style="font-weight:bold;">GROUP_CONCAT</span>(<span style="color: #333;">b</span><span >,</span> <span style="color: blue;">'.'</span>) <span style="font-weight:bold;">OVER</span> (
938938
<span style="font-weight:bold;">ORDER BY</span>
939939
<span style="color: #333;">c</span>
940940
<span style="font-weight:bold;">GROUPS</span>
941941
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">UNBOUNDED</span> <span style="font-weight:bold;">PRECEDING</span>
942-
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT ROW</span>
942+
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
943943
<span style="font-weight:bold;">EXCLUDE</span> <span style="font-weight:bold;">TIES</span>
944944
) <span style="font-weight:bold;">AS</span> <span style="color: #333;">tie</span><span >,</span>
945945
<span style="font-weight:bold;">GROUP_CONCAT</span>(<span style="color: #333;">b</span><span >,</span> <span style="color: blue;">'.'</span>) <span style="font-weight:bold;">FILTER</span> (
@@ -990,7 +990,7 @@
990990
<span style="font-weight:bold;">ORDER BY</span>
991991
<span style="color: #333;">RevenueYear</span>
992992
<span style="font-weight:bold;">ROWS</span>
993-
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">CURRENT ROW</span>
993+
<span style="font-weight:bold;">BETWEEN</span> <span style="font-weight:bold;">CURRENT</span> <span style="font-weight:bold;">ROW</span>
994994
<span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">UNBOUNDED</span> <span style="font-weight:bold;">FOLLOWING</span>
995995
) <span style="font-weight:bold;">AS</span> <span style="color: #333;">MinRevenueBeyond</span>
996996
<span style="font-weight:bold;">FROM</span>

0 commit comments

Comments
 (0)