Skip to content

Commit 1cfcac2

Browse files
committed
Add SQLite reserved keyword list
For future compilation of Tokenizer lists.
1 parent 96b1be2 commit 1cfcac2

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

tests/TokenizerTest.php

+156
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,161 @@ final class TokenizerTest extends TestCase
553553
'ZEROFILL',
554554
];
555555

556+
/**
557+
* Based on https://www.sqlite.org/lang_keywords.html list.
558+
*
559+
* All these keywords must be quoted.
560+
*/
561+
private const KEYWORDS_RESERVED_SQLITE = [
562+
'ABORT',
563+
'ACTION',
564+
'ADD',
565+
'AFTER',
566+
'ALL',
567+
'ALTER',
568+
'ALWAYS',
569+
'ANALYZE',
570+
'AND',
571+
'AS',
572+
'ASC',
573+
'ATTACH',
574+
'AUTOINCREMENT',
575+
'BEFORE',
576+
'BEGIN',
577+
'BETWEEN',
578+
'BY',
579+
'CASCADE',
580+
'CASE',
581+
'CAST',
582+
'CHECK',
583+
'COLLATE',
584+
'COLUMN',
585+
'COMMIT',
586+
'CONFLICT',
587+
'CONSTRAINT',
588+
'CREATE',
589+
'CROSS',
590+
'CURRENT',
591+
'CURRENT_DATE',
592+
'CURRENT_TIME',
593+
'CURRENT_TIMESTAMP',
594+
'DATABASE',
595+
'DEFAULT',
596+
'DEFERRABLE',
597+
'DEFERRED',
598+
'DELETE',
599+
'DESC',
600+
'DETACH',
601+
'DISTINCT',
602+
'DO',
603+
'DROP',
604+
'EACH',
605+
'ELSE',
606+
'END',
607+
'ESCAPE',
608+
'EXCEPT',
609+
'EXCLUDE',
610+
'EXCLUSIVE',
611+
'EXISTS',
612+
'EXPLAIN',
613+
'FAIL',
614+
'FILTER',
615+
'FIRST',
616+
'FOLLOWING',
617+
'FOR',
618+
'FOREIGN',
619+
'FROM',
620+
'FULL',
621+
'GENERATED',
622+
'GLOB',
623+
'GROUP',
624+
'GROUPS',
625+
'HAVING',
626+
'IF',
627+
'IGNORE',
628+
'IMMEDIATE',
629+
'IN',
630+
'INDEX',
631+
'INDEXED',
632+
'INITIALLY',
633+
'INNER',
634+
'INSERT',
635+
'INSTEAD',
636+
'INTERSECT',
637+
'INTO',
638+
'IS',
639+
'ISNULL',
640+
'JOIN',
641+
'KEY',
642+
'LAST',
643+
'LEFT',
644+
'LIKE',
645+
'LIMIT',
646+
'MATCH',
647+
'MATERIALIZED',
648+
'NATURAL',
649+
'NO',
650+
'NOT',
651+
'NOTHING',
652+
'NOTNULL',
653+
'NULL',
654+
'NULLS',
655+
'OF',
656+
'OFFSET',
657+
'ON',
658+
'OR',
659+
'ORDER',
660+
'OTHERS',
661+
'OUTER',
662+
'OVER',
663+
'PARTITION',
664+
'PLAN',
665+
'PRAGMA',
666+
'PRECEDING',
667+
'PRIMARY',
668+
'QUERY',
669+
'RAISE',
670+
'RANGE',
671+
'RECURSIVE',
672+
'REFERENCES',
673+
'REGEXP',
674+
'REINDEX',
675+
'RELEASE',
676+
'RENAME',
677+
'REPLACE',
678+
'RESTRICT',
679+
'RETURNING',
680+
'RIGHT',
681+
'ROLLBACK',
682+
'ROW',
683+
'ROWS',
684+
'SAVEPOINT',
685+
'SELECT',
686+
'SET',
687+
'TABLE',
688+
'TEMP',
689+
'TEMPORARY',
690+
'THEN',
691+
'TIES',
692+
'TO',
693+
'TRANSACTION',
694+
'TRIGGER',
695+
'UNBOUNDED',
696+
'UNION',
697+
'UNIQUE',
698+
'UPDATE',
699+
'USING',
700+
'VACUUM',
701+
'VALUES',
702+
'VIEW',
703+
'VIRTUAL',
704+
'WHEN',
705+
'WHERE',
706+
'WINDOW',
707+
'WITH',
708+
'WITHOUT',
709+
];
710+
556711
/**
557712
* @param 'reserved'|'reservedToplevel'|'reservedNewline'|'functions' $propertyName
558713
*
@@ -577,6 +732,7 @@ public function testInternalKeywordListsAreSortedForEasierMaintenance(): void
577732
$this->getTokenizerList('functions'),
578733
self::KEYWORDS_RESERVED_MYSQL,
579734
self::KEYWORDS_RESERVED_MARIADB,
735+
self::KEYWORDS_RESERVED_SQLITE,
580736
] as $list
581737
) {
582738
$listSorted = $list;

0 commit comments

Comments
 (0)