Skip to content

Commit 8945fcb

Browse files
committed
Add SQLite reserved keyword list
For future compilation of Tokenizer lists.
1 parent eb42eea commit 8945fcb

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
@@ -554,6 +554,161 @@ final class TokenizerTest extends TestCase
554554
'ZEROFILL',
555555
];
556556

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

0 commit comments

Comments
 (0)