1
2
3 __author__ = "Thadeus Burgess <thadeusb@thadeusb.com>"
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 COMMON = set((
26 'SELECT',
27 'INSERT',
28 'DELETE',
29 'UPDATE',
30 'DROP',
31 'CREATE',
32 'ALTER',
33
34 'WHERE',
35 'FROM',
36 'INNER',
37 'JOIN',
38 'AND',
39 'OR',
40 'LIKE',
41 'ON',
42 'IN',
43 'SET',
44
45 'BY',
46 'GROUP',
47 'ORDER',
48 'LEFT',
49 'OUTER',
50
51 'IF',
52 'END',
53 'THEN',
54 'LOOP',
55 'AS',
56 'ELSE',
57 'FOR',
58
59 'CASE',
60 'WHEN',
61 'MIN',
62 'MAX',
63 'DISTINCT',
64 ))
65
66
67 POSTGRESQL = set((
68 'FALSE',
69 'TRUE',
70 'ALL',
71 'ANALYSE',
72 'ANALYZE',
73 'AND',
74 'ANY',
75 'ARRAY',
76 'AS',
77 'ASC',
78 'ASYMMETRIC',
79 'AUTHORIZATION',
80 'BETWEEN',
81 'BIGINT',
82 'BINARY',
83 'BIT',
84 'BOOLEAN',
85 'BOTH',
86 'CASE',
87 'CAST',
88 'CHAR',
89 'CHARACTER',
90 'CHECK',
91 'COALESCE',
92 'COLLATE',
93 'COLUMN',
94 'CONSTRAINT',
95 'CREATE',
96 'CROSS',
97 'CURRENT_CATALOG',
98 'CURRENT_DATE',
99 'CURRENT_ROLE',
100 'CURRENT_SCHEMA',
101 'CURRENT_TIME',
102 'CURRENT_TIMESTAMP',
103 'CURRENT_USER',
104 'DEC',
105 'DECIMAL',
106 'DEFAULT',
107 'DEFERRABLE',
108 'DESC',
109 'DISTINCT',
110 'DO',
111 'ELSE',
112 'END',
113 'EXCEPT',
114 'EXISTS',
115 'EXTRACT',
116 'FETCH',
117 'FLOAT',
118 'FOR',
119 'FOREIGN',
120 'FREEZE',
121 'FROM',
122 'FULL',
123 'GRANT',
124 'GREATEST',
125 'GROUP',
126 'HAVING',
127 'ILIKE',
128 'IN',
129 'INITIALLY',
130 'INNER',
131 'INOUT',
132 'INT',
133 'INTEGER',
134 'INTERSECT',
135 'INTERVAL',
136 'INTO',
137 'IS',
138 'ISNULL',
139 'JOIN',
140 'LEADING',
141 'LEAST',
142 'LEFT',
143 'LIKE',
144 'LIMIT',
145 'LOCALTIME',
146 'LOCALTIMESTAMP',
147 'NATIONAL',
148 'NATURAL',
149 'NCHAR',
150 'NEW',
151 'NONE',
152 'NOT',
153 'NOTNULL',
154 'NULL',
155 'NULLIF',
156 'NUMERIC',
157 'OFF',
158 'OFFSET',
159 'OLD',
160 'ON',
161 'ONLY',
162 'OR',
163 'ORDER',
164 'OUT',
165 'OUTER',
166 'OVERLAPS',
167 'OVERLAY',
168 'PLACING',
169 'POSITION',
170 'PRECISION',
171 'PRIMARY',
172 'REAL',
173 'REFERENCES',
174 'RETURNING',
175 'RIGHT',
176 'ROW',
177 'SELECT',
178 'SESSION_USER',
179 'SETOF',
180 'SIMILAR',
181 'SMALLINT',
182 'SOME',
183 'SUBSTRING',
184 'SYMMETRIC',
185 'TABLE',
186 'THEN',
187 'TIME',
188 'TIMESTAMP',
189 'TO',
190 'TRAILING',
191 'TREAT',
192 'TRIM',
193 'UNION',
194 'UNIQUE',
195 'USER',
196 'USING',
197 'VALUES',
198 'VARCHAR',
199 'VARIADIC',
200 'VERBOSE',
201 'WHEN',
202 'WHERE',
203 'WITH',
204 'XMLATTRIBUTES',
205 'XMLCONCAT',
206 'XMLELEMENT',
207 'XMLFOREST',
208 'XMLPARSE',
209 'XMLPI',
210 'XMLROOT',
211 'XMLSERIALIZE',
212 ))
213
214
215 POSTGRESQL_NONRESERVED = set((
216 'A',
217 'ABORT',
218 'ABS',
219 'ABSENT',
220 'ABSOLUTE',
221 'ACCESS',
222 'ACCORDING',
223 'ACTION',
224 'ADA',
225 'ADD',
226 'ADMIN',
227 'AFTER',
228 'AGGREGATE',
229 'ALIAS',
230 'ALLOCATE',
231 'ALSO',
232 'ALTER',
233 'ALWAYS',
234 'ARE',
235 'ARRAY_AGG',
236 'ASENSITIVE',
237 'ASSERTION',
238 'ASSIGNMENT',
239 'AT',
240 'ATOMIC',
241 'ATTRIBUTE',
242 'ATTRIBUTES',
243 'AVG',
244 'BACKWARD',
245 'BASE64',
246 'BEFORE',
247 'BEGIN',
248 'BERNOULLI',
249 'BIT_LENGTH',
250 'BITVAR',
251 'BLOB',
252 'BOM',
253 'BREADTH',
254 'BY',
255 'C',
256 'CACHE',
257 'CALL',
258 'CALLED',
259 'CARDINALITY',
260 'CASCADE',
261 'CASCADED',
262 'CATALOG',
263 'CATALOG_NAME',
264 'CEIL',
265 'CEILING',
266 'CHAIN',
267 'CHAR_LENGTH',
268 'CHARACTER_LENGTH',
269 'CHARACTER_SET_CATALOG',
270 'CHARACTER_SET_NAME',
271 'CHARACTER_SET_SCHEMA',
272 'CHARACTERISTICS',
273 'CHARACTERS',
274 'CHECKED',
275 'CHECKPOINT',
276 'CLASS',
277 'CLASS_ORIGIN',
278 'CLOB',
279 'CLOSE',
280 'CLUSTER',
281 'COBOL',
282 'COLLATION',
283 'COLLATION_CATALOG',
284 'COLLATION_NAME',
285 'COLLATION_SCHEMA',
286 'COLLECT',
287 'COLUMN_NAME',
288 'COLUMNS',
289 'COMMAND_FUNCTION',
290 'COMMAND_FUNCTION_CODE',
291 'COMMENT',
292 'COMMIT',
293 'COMMITTED',
294 'COMPLETION',
295 'CONCURRENTLY',
296 'CONDITION',
297 'CONDITION_NUMBER',
298 'CONFIGURATION',
299 'CONNECT',
300 'CONNECTION',
301 'CONNECTION_NAME',
302 'CONSTRAINT_CATALOG',
303 'CONSTRAINT_NAME',
304 'CONSTRAINT_SCHEMA',
305 'CONSTRAINTS',
306 'CONSTRUCTOR',
307 'CONTAINS',
308 'CONTENT',
309 'CONTINUE',
310 'CONVERSION',
311 'CONVERT',
312 'COPY',
313 'CORR',
314 'CORRESPONDING',
315 'COST',
316 'COUNT',
317 'COVAR_POP',
318 'COVAR_SAMP',
319 'CREATEDB',
320 'CREATEROLE',
321 'CREATEUSER',
322 'CSV',
323 'CUBE',
324 'CUME_DIST',
325 'CURRENT',
326 'CURRENT_DEFAULT_TRANSFORM_GROUP',
327 'CURRENT_PATH',
328 'CURRENT_TRANSFORM_GROUP_FOR_TYPE',
329 'CURSOR',
330 'CURSOR_NAME',
331 'CYCLE',
332 'DATA',
333 'DATABASE',
334 'DATE',
335 'DATETIME_INTERVAL_CODE',
336 'DATETIME_INTERVAL_PRECISION',
337 'DAY',
338 'DEALLOCATE',
339 'DECLARE',
340 'DEFAULTS',
341 'DEFERRED',
342 'DEFINED',
343 'DEFINER',
344 'DEGREE',
345 'DELETE',
346 'DELIMITER',
347 'DELIMITERS',
348 'DENSE_RANK',
349 'DEPTH',
350 'DEREF',
351 'DERIVED',
352 'DESCRIBE',
353 'DESCRIPTOR',
354 'DESTROY',
355 'DESTRUCTOR',
356 'DETERMINISTIC',
357 'DIAGNOSTICS',
358 'DICTIONARY',
359 'DISABLE',
360 'DISCARD',
361 'DISCONNECT',
362 'DISPATCH',
363 'DOCUMENT',
364 'DOMAIN',
365 'DOUBLE',
366 'DROP',
367 'DYNAMIC',
368 'DYNAMIC_FUNCTION',
369 'DYNAMIC_FUNCTION_CODE',
370 'EACH',
371 'ELEMENT',
372 'EMPTY',
373 'ENABLE',
374 'ENCODING',
375 'ENCRYPTED',
376 'END-EXEC',
377 'ENUM',
378 'EQUALS',
379 'ESCAPE',
380 'EVERY',
381 'EXCEPTION',
382 'EXCLUDE',
383 'EXCLUDING',
384 'EXCLUSIVE',
385 'EXEC',
386 'EXECUTE',
387 'EXISTING',
388 'EXP',
389 'EXPLAIN',
390 'EXTERNAL',
391 'FAMILY',
392 'FILTER',
393 'FINAL',
394 'FIRST',
395 'FIRST_VALUE',
396 'FLAG',
397 'FLOOR',
398 'FOLLOWING',
399 'FORCE',
400 'FORTRAN',
401 'FORWARD',
402 'FOUND',
403 'FREE',
404 'FUNCTION',
405 'FUSION',
406 'G',
407 'GENERAL',
408 'GENERATED',
409 'GET',
410 'GLOBAL',
411 'GO',
412 'GOTO',
413 'GRANTED',
414 'GROUPING',
415 'HANDLER',
416 'HEADER',
417 'HEX',
418 'HIERARCHY',
419 'HOLD',
420 'HOST',
421 'HOUR',
422
423 'IDENTITY',
424 'IF',
425 'IGNORE',
426 'IMMEDIATE',
427 'IMMUTABLE',
428 'IMPLEMENTATION',
429 'IMPLICIT',
430 'INCLUDING',
431 'INCREMENT',
432 'INDENT',
433 'INDEX',
434 'INDEXES',
435 'INDICATOR',
436 'INFIX',
437 'INHERIT',
438 'INHERITS',
439 'INITIALIZE',
440 'INPUT',
441 'INSENSITIVE',
442 'INSERT',
443 'INSTANCE',
444 'INSTANTIABLE',
445 'INSTEAD',
446 'INTERSECTION',
447 'INVOKER',
448 'ISOLATION',
449 'ITERATE',
450 'K',
451 'KEY',
452 'KEY_MEMBER',
453 'KEY_TYPE',
454 'LAG',
455 'LANCOMPILER',
456 'LANGUAGE',
457 'LARGE',
458 'LAST',
459 'LAST_VALUE',
460 'LATERAL',
461 'LC_COLLATE',
462 'LC_CTYPE',
463 'LEAD',
464 'LENGTH',
465 'LESS',
466 'LEVEL',
467 'LIKE_REGEX',
468 'LISTEN',
469 'LN',
470 'LOAD',
471 'LOCAL',
472 'LOCATION',
473 'LOCATOR',
474 'LOCK',
475 'LOGIN',
476 'LOWER',
477 'M',
478 'MAP',
479 'MAPPING',
480 'MATCH',
481 'MATCHED',
482 'MAX',
483 'MAX_CARDINALITY',
484 'MAXVALUE',
485 'MEMBER',
486 'MERGE',
487 'MESSAGE_LENGTH',
488 'MESSAGE_OCTET_LENGTH',
489 'MESSAGE_TEXT',
490 'METHOD',
491 'MIN',
492 'MINUTE',
493 'MINVALUE',
494 'MOD',
495 'MODE',
496 'MODIFIES',
497 'MODIFY',
498 'MODULE',
499 'MONTH',
500 'MORE',
501 'MOVE',
502 'MULTISET',
503 'MUMPS',
504
505 'NAMES',
506 'NAMESPACE',
507 'NCLOB',
508 'NESTING',
509 'NEXT',
510 'NFC',
511 'NFD',
512 'NFKC',
513 'NFKD',
514 'NIL',
515 'NO',
516 'NOCREATEDB',
517 'NOCREATEROLE',
518 'NOCREATEUSER',
519 'NOINHERIT',
520 'NOLOGIN',
521 'NORMALIZE',
522 'NORMALIZED',
523 'NOSUPERUSER',
524 'NOTHING',
525 'NOTIFY',
526 'NOWAIT',
527 'NTH_VALUE',
528 'NTILE',
529 'NULLABLE',
530 'NULLS',
531 'NUMBER',
532 'OBJECT',
533 'OCCURRENCES_REGEX',
534 'OCTET_LENGTH',
535 'OCTETS',
536 'OF',
537 'OIDS',
538 'OPEN',
539 'OPERATION',
540 'OPERATOR',
541 'OPTION',
542 'OPTIONS',
543 'ORDERING',
544 'ORDINALITY',
545 'OTHERS',
546 'OUTPUT',
547 'OVER',
548 'OVERRIDING',
549 'OWNED',
550 'OWNER',
551 'P',
552 'PAD',
553 'PARAMETER',
554 'PARAMETER_MODE',
555 'PARAMETER_NAME',
556 'PARAMETER_ORDINAL_POSITION',
557 'PARAMETER_SPECIFIC_CATALOG',
558 'PARAMETER_SPECIFIC_NAME',
559 'PARAMETER_SPECIFIC_SCHEMA',
560 'PARAMETERS',
561 'PARSER',
562 'PARTIAL',
563 'PARTITION',
564 'PASCAL',
565 'PASSING',
566
567 'PATH',
568 'PERCENT_RANK',
569 'PERCENTILE_CONT',
570 'PERCENTILE_DISC',
571 'PLANS',
572 'PLI',
573 'POSITION_REGEX',
574 'POSTFIX',
575 'POWER',
576 'PRECEDING',
577 'PREFIX',
578 'PREORDER',
579 'PREPARE',
580 'PREPARED',
581 'PRESERVE',
582 'PRIOR',
583 'PRIVILEGES',
584 'PROCEDURAL',
585 'PROCEDURE',
586 'PUBLIC',
587 'QUOTE',
588 'RANGE',
589 'RANK',
590 'READ',
591 'READS',
592 'REASSIGN',
593 'RECHECK',
594 'RECURSIVE',
595 'REF',
596 'REFERENCING',
597 'REGR_AVGX',
598 'REGR_AVGY',
599 'REGR_COUNT',
600 'REGR_INTERCEPT',
601 'REGR_R2',
602 'REGR_SLOPE',
603 'REGR_SXX',
604 'REGR_SXY',
605 'REGR_SYY',
606 'REINDEX',
607 'RELATIVE',
608 'RELEASE',
609 'RENAME',
610 'REPEATABLE',
611 'REPLACE',
612 'REPLICA',
613 'RESET',
614 'RESPECT',
615 'RESTART',
616 'RESTRICT',
617 'RESULT',
618 'RETURN',
619 'RETURNED_CARDINALITY',
620 'RETURNED_LENGTH',
621 'RETURNED_OCTET_LENGTH',
622 'RETURNED_SQLSTATE',
623 'RETURNS',
624 'REVOKE',
625
626 'ROLLBACK',
627 'ROLLUP',
628 'ROUTINE',
629 'ROUTINE_CATALOG',
630 'ROUTINE_NAME',
631 'ROUTINE_SCHEMA',
632 'ROW_COUNT',
633 'ROW_NUMBER',
634 'ROWS',
635 'RULE',
636 'SAVEPOINT',
637 'SCALE',
638 'SCHEMA',
639 'SCHEMA_NAME',
640 'SCOPE',
641 'SCOPE_CATALOG',
642 'SCOPE_NAME',
643 'SCOPE_SCHEMA',
644 'SCROLL',
645 'SEARCH',
646 'SECOND',
647 'SECTION',
648 'SECURITY',
649 'SELF',
650 'SENSITIVE',
651 'SEQUENCE',
652 'SERIALIZABLE',
653 'SERVER',
654 'SERVER_NAME',
655 'SESSION',
656 'SET',
657 'SETS',
658 'SHARE',
659 'SHOW',
660 'SIMPLE',
661 'SIZE',
662 'SOURCE',
663 'SPACE',
664 'SPECIFIC',
665 'SPECIFIC_NAME',
666 'SPECIFICTYPE',
667 'SQL',
668 'SQLCODE',
669 'SQLERROR',
670 'SQLEXCEPTION',
671 'SQLSTATE',
672 'SQLWARNING',
673 'SQRT',
674 'STABLE',
675 'STANDALONE',
676 'START',
677 'STATE',
678 'STATEMENT',
679 'STATIC',
680 'STATISTICS',
681 'STDDEV_POP',
682 'STDDEV_SAMP',
683 'STDIN',
684 'STDOUT',
685 'STORAGE',
686 'STRICT',
687 'STRIP',
688 'STRUCTURE',
689 'STYLE',
690 'SUBCLASS_ORIGIN',
691 'SUBLIST',
692 'SUBMULTISET',
693 'SUBSTRING_REGEX',
694 'SUM',
695 'SUPERUSER',
696 'SYSID',
697 'SYSTEM',
698 'SYSTEM_USER',
699 'T',
700
701 'TABLESAMPLE',
702 'TABLESPACE',
703 'TEMP',
704 'TEMPLATE',
705 'TEMPORARY',
706 'TERMINATE',
707 'TEXT',
708 'THAN',
709 'TIES',
710 'TIMEZONE_HOUR',
711 'TIMEZONE_MINUTE',
712 'TOP_LEVEL_COUNT',
713 'TRANSACTION',
714 'TRANSACTION_ACTIVE',
715 'TRANSACTIONS_COMMITTED',
716 'TRANSACTIONS_ROLLED_BACK',
717 'TRANSFORM',
718 'TRANSFORMS',
719 'TRANSLATE',
720 'TRANSLATE_REGEX',
721 'TRANSLATION',
722 'TRIGGER',
723 'TRIGGER_CATALOG',
724 'TRIGGER_NAME',
725 'TRIGGER_SCHEMA',
726 'TRIM_ARRAY',
727 'TRUNCATE',
728 'TRUSTED',
729 'TYPE',
730 'UESCAPE',
731 'UNBOUNDED',
732 'UNCOMMITTED',
733 'UNDER',
734 'UNENCRYPTED',
735 'UNKNOWN',
736 'UNLISTEN',
737 'UNNAMED',
738 'UNNEST',
739 'UNTIL',
740 'UNTYPED',
741 'UPDATE',
742 'UPPER',
743 'URI',
744 'USAGE',
745 'USER_DEFINED_TYPE_CATALOG',
746 'USER_DEFINED_TYPE_CODE',
747 'USER_DEFINED_TYPE_NAME',
748 'USER_DEFINED_TYPE_SCHEMA',
749 'VACUUM',
750 'VALID',
751 'VALIDATOR',
752 'VALUE',
753 'VAR_POP',
754 'VAR_SAMP',
755 'VARBINARY',
756 'VARIABLE',
757 'VARYING',
758 'VERSION',
759 'VIEW',
760 'VOLATILE',
761 'WHENEVER',
762 'WHITESPACE',
763 'WIDTH_BUCKET',
764 'WINDOW',
765 'WITHIN',
766 'WITHOUT',
767 'WORK',
768 'WRAPPER',
769 'WRITE',
770 'XML',
771 'XMLAGG',
772 'XMLBINARY',
773 'XMLCAST',
774 'XMLCOMMENT',
775 'XMLDECLARATION',
776 'XMLDOCUMENT',
777 'XMLEXISTS',
778 'XMLITERATE',
779 'XMLNAMESPACES',
780 'XMLQUERY',
781 'XMLSCHEMA',
782 'XMLTABLE',
783 'XMLTEXT',
784 'XMLVALIDATE',
785 'YEAR',
786 'YES',
787 'ZONE',
788 ))
789
790
791 FIREBIRD = set((
792 'ABS',
793 'ACTIVE',
794 'ADMIN',
795 'AFTER',
796 'ASCENDING',
797 'AUTO',
798 'AUTODDL',
799 'BASED',
800 'BASENAME',
801 'BASE_NAME',
802 'BEFORE',
803 'BIT_LENGTH',
804 'BLOB',
805 'BLOBEDIT',
806 'BOOLEAN',
807 'BOTH',
808 'BUFFER',
809 'CACHE',
810 'CHAR_LENGTH',
811 'CHARACTER_LENGTH',
812 'CHECK_POINT_LEN',
813 'CHECK_POINT_LENGTH',
814 'CLOSE',
815 'COMMITTED',
816 'COMPILETIME',
817 'COMPUTED',
818 'CONDITIONAL',
819 'CONNECT',
820 'CONTAINING',
821 'CROSS',
822 'CSTRING',
823 'CURRENT_CONNECTION',
824 'CURRENT_ROLE',
825 'CURRENT_TRANSACTION',
826 'CURRENT_USER',
827 'DATABASE',
828 'DB_KEY',
829 'DEBUG',
830 'DESCENDING',
831 'DISCONNECT',
832 'DISPLAY',
833 'DO',
834 'ECHO',
835 'EDIT',
836 'ENTRY_POINT',
837 'EVENT',
838 'EXIT',
839 'EXTERN',
840 'FALSE',
841 'FETCH',
842 'FILE',
843 'FILTER',
844 'FREE_IT',
845 'FUNCTION',
846 'GDSCODE',
847 'GENERATOR',
848 'GEN_ID',
849 'GLOBAL',
850 'GROUP_COMMIT_WAIT',
851 'GROUP_COMMIT_WAIT_TIME',
852 'HELP',
853 'IF',
854 'INACTIVE',
855 'INDEX',
856 'INIT',
857 'INPUT_TYPE',
858 'INSENSITIVE',
859 'ISQL',
860 'LC_MESSAGES',
861 'LC_TYPE',
862 'LEADING',
863 'LENGTH',
864 'LEV',
865 'LOGFILE',
866 'LOG_BUFFER_SIZE',
867 'LOG_BUF_SIZE',
868 'LONG',
869 'LOWER',
870 'MANUAL',
871 'MAXIMUM',
872 'MAXIMUM_SEGMENT',
873 'MAX_SEGMENT',
874 'MERGE',
875 'MESSAGE',
876 'MINIMUM',
877 'MODULE_NAME',
878 'NOAUTO',
879 'NUM_LOG_BUFS',
880 'NUM_LOG_BUFFERS',
881 'OCTET_LENGTH',
882 'OPEN',
883 'OUTPUT_TYPE',
884 'OVERFLOW',
885 'PAGE',
886 'PAGELENGTH',
887 'PAGES',
888 'PAGE_SIZE',
889 'PARAMETER',
890
891 'PLAN',
892 'POST_EVENT',
893 'QUIT',
894 'RAW_PARTITIONS',
895 'RDB$DB_KEY',
896 'RECORD_VERSION',
897 'RECREATE',
898 'RECURSIVE',
899 'RELEASE',
900 'RESERV',
901 'RESERVING',
902 'RETAIN',
903 'RETURN',
904 'RETURNING_VALUES',
905 'RETURNS',
906
907 'ROW_COUNT',
908 'ROWS',
909 'RUNTIME',
910 'SAVEPOINT',
911 'SECOND',
912 'SENSITIVE',
913 'SHADOW',
914 'SHARED',
915 'SHELL',
916 'SHOW',
917 'SINGULAR',
918 'SNAPSHOT',
919 'SORT',
920 'STABILITY',
921 'START',
922 'STARTING',
923 'STARTS',
924 'STATEMENT',
925 'STATIC',
926 'STATISTICS',
927 'SUB_TYPE',
928 'SUSPEND',
929 'TERMINATOR',
930 'TRAILING',
931 'TRIGGER',
932 'TRIM',
933 'TRUE',
934 'TYPE',
935 'UNCOMMITTED',
936 'UNKNOWN',
937 'USING',
938 'VARIABLE',
939 'VERSION',
940 'WAIT',
941 'WEEKDAY',
942 'WHILE',
943 'YEARDAY',
944 ))
945 FIREBIRD_NONRESERVED = set((
946 'BACKUP',
947 'BLOCK',
948 'COALESCE',
949 'COLLATION',
950 'COMMENT',
951 'DELETING',
952 'DIFFERENCE',
953 'IIF',
954 'INSERTING',
955 'LAST',
956 'LEAVE',
957 'LOCK',
958 'NEXT',
959 'NULLIF',
960 'NULLS',
961 'RESTART',
962 'RETURNING',
963 'SCALAR_ARRAY',
964 'SEQUENCE',
965 'STATEMENT',
966 'UPDATING',
967 'ABS',
968 'ACCENT',
969 'ACOS',
970 'ALWAYS',
971 'ASCII_CHAR',
972 'ASCII_VAL',
973 'ASIN',
974 'ATAN',
975 'ATAN2',
976 'BACKUP',
977 'BIN_AND',
978 'BIN_OR',
979 'BIN_SHL',
980 'BIN_SHR',
981 'BIN_XOR',
982 'BLOCK',
983 'CEIL',
984 'CEILING',
985 'COLLATION',
986 'COMMENT',
987 'COS',
988 'COSH',
989 'COT',
990 'DATEADD',
991 'DATEDIFF',
992 'DECODE',
993 'DIFFERENCE',
994 'EXP',
995 'FLOOR',
996 'GEN_UUID',
997 'GENERATED',
998 'HASH',
999 'IIF',
1000 'LIST',
1001 'LN',
1002 'LOG',
1003 'LOG10',
1004 'LPAD',
1005 'MATCHED',
1006 'MATCHING',
1007 'MAXVALUE',
1008 'MILLISECOND',
1009 'MINVALUE',
1010 'MOD',
1011 'NEXT',
1012 'OVERLAY',
1013 'PAD',
1014 'PI',
1015 'PLACING',
1016 'POWER',
1017 'PRESERVE',
1018 'RAND',
1019 'REPLACE',
1020 'RESTART',
1021 'RETURNING',
1022 'REVERSE',
1023 'ROUND',
1024 'RPAD',
1025 'SCALAR_ARRAY',
1026 'SEQUENCE',
1027 'SIGN',
1028 'SIN',
1029 'SINH',
1030 'SPACE',
1031 'SQRT',
1032 'TAN',
1033 'TANH',
1034 'TEMPORARY',
1035 'TRUNC',
1036 'WEEK',
1037 ))
1038
1039
1040 MYSQL = set((
1041 'ACCESSIBLE',
1042 'ADD',
1043 'ALL',
1044 'ALTER',
1045 'ANALYZE',
1046 'AND',
1047 'AS',
1048 'ASC',
1049 'ASENSITIVE',
1050 'BEFORE',
1051 'BETWEEN',
1052 'BIGINT',
1053 'BINARY',
1054 'BLOB',
1055 'BOTH',
1056 'BY',
1057 'CALL',
1058 'CASCADE',
1059 'CASE',
1060 'CHANGE',
1061 'CHAR',
1062 'CHARACTER',
1063 'CHECK',
1064 'COLLATE',
1065 'COLUMN',
1066 'CONDITION',
1067 'CONSTRAINT',
1068 'CONTINUE',
1069 'CONVERT',
1070 'CREATE',
1071 'CROSS',
1072 'CURRENT_DATE',
1073 'CURRENT_TIME',
1074 'CURRENT_TIMESTAMP',
1075 'CURRENT_USER',
1076 'CURSOR',
1077 'DATABASE',
1078 'DATABASES',
1079 'DAY_HOUR',
1080 'DAY_MICROSECOND',
1081 'DAY_MINUTE',
1082 'DAY_SECOND',
1083 'DEC',
1084 'DECIMAL',
1085 'DECLARE',
1086 'DEFAULT',
1087 'DELAYED',
1088 'DELETE',
1089 'DESC',
1090 'DESCRIBE',
1091 'DETERMINISTIC',
1092 'DISTINCT',
1093 'DISTINCTROW',
1094 'DIV',
1095 'DOUBLE',
1096 'DROP',
1097 'DUAL',
1098 'EACH',
1099 'ELSE',
1100 'ELSEIF',
1101 'ENCLOSED',
1102 'ESCAPED',
1103 'EXISTS',
1104 'EXIT',
1105 'EXPLAIN',
1106 'FALSE',
1107 'FETCH',
1108 'FLOAT',
1109 'FLOAT4',
1110 'FLOAT8',
1111 'FOR',
1112 'FORCE',
1113 'FOREIGN',
1114 'FROM',
1115 'FULLTEXT',
1116 'GRANT',
1117 'GROUP',
1118 'HAVING',
1119 'HIGH_PRIORITY',
1120 'HOUR_MICROSECOND',
1121 'HOUR_MINUTE',
1122 'HOUR_SECOND',
1123 'IF',
1124 'IGNORE',
1125 'IGNORE_SERVER_IDS',
1126 'IGNORE_SERVER_IDS',
1127 'IN',
1128 'INDEX',
1129 'INFILE',
1130 'INNER',
1131 'INOUT',
1132 'INSENSITIVE',
1133 'INSERT',
1134 'INT',
1135 'INT1',
1136 'INT2',
1137 'INT3',
1138 'INT4',
1139 'INT8',
1140 'INTEGER',
1141 'INTERVAL',
1142 'INTO',
1143 'IS',
1144 'ITERATE',
1145 'JOIN',
1146 'KEY',
1147 'KEYS',
1148 'KILL',
1149 'LEADING',
1150 'LEAVE',
1151 'LEFT',
1152 'LIKE',
1153 'LIMIT',
1154 'LINEAR',
1155 'LINES',
1156 'LOAD',
1157 'LOCALTIME',
1158 'LOCALTIMESTAMP',
1159 'LOCK',
1160 'LONG',
1161 'LONGBLOB',
1162 'LONGTEXT',
1163 'LOOP',
1164 'LOW_PRIORITY',
1165 'MASTER_HEARTBEAT_PERIOD',
1166 'MASTER_HEARTBEAT_PERIOD',
1167 'MASTER_SSL_VERIFY_SERVER_CERT',
1168 'MATCH',
1169 'MAXVALUE',
1170 'MAXVALUE',
1171 'MEDIUMBLOB',
1172 'MEDIUMINT',
1173 'MEDIUMTEXT',
1174 'MIDDLEINT',
1175 'MINUTE_MICROSECOND',
1176 'MINUTE_SECOND',
1177 'MOD',
1178 'MODIFIES',
1179 'NATURAL',
1180 'NO_WRITE_TO_BINLOG',
1181 'NOT',
1182 'NULL',
1183 'NUMERIC',
1184 'ON',
1185 'OPTIMIZE',
1186 'OPTION',
1187 'OPTIONALLY',
1188 'OR',
1189 'ORDER',
1190 'OUT',
1191 'OUTER',
1192 'OUTFILE',
1193 'PRECISION',
1194 'PRIMARY',
1195 'PROCEDURE',
1196 'PURGE',
1197 'RANGE',
1198 'READ',
1199 'READ_WRITE',
1200 'READS',
1201 'REAL',
1202 'REFERENCES',
1203 'REGEXP',
1204 'RELEASE',
1205 'RENAME',
1206 'REPEAT',
1207 'REPLACE',
1208 'REQUIRE',
1209 'RESIGNAL',
1210 'RESIGNAL',
1211 'RESTRICT',
1212 'RETURN',
1213 'REVOKE',
1214 'RIGHT',
1215 'RLIKE',
1216 'SCHEMA',
1217 'SCHEMAS',
1218 'SECOND_MICROSECOND',
1219 'SELECT',
1220 'SENSITIVE',
1221 'SEPARATOR',
1222 'SET',
1223 'SHOW',
1224 'SIGNAL',
1225 'SIGNAL',
1226 'SMALLINT',
1227 'SPATIAL',
1228 'SPECIFIC',
1229 'SQL',
1230 'SQL_BIG_RESULT',
1231 'SQL_CALC_FOUND_ROWS',
1232 'SQL_SMALL_RESULT',
1233 'SQLEXCEPTION',
1234 'SQLSTATE',
1235 'SQLWARNING',
1236 'SSL',
1237 'STARTING',
1238 'STRAIGHT_JOIN',
1239 'TABLE',
1240 'TERMINATED',
1241 'THEN',
1242 'TINYBLOB',
1243 'TINYINT',
1244 'TINYTEXT',
1245 'TO',
1246 'TRAILING',
1247 'TRIGGER',
1248 'TRUE',
1249 'UNDO',
1250 'UNION',
1251 'UNIQUE',
1252 'UNLOCK',
1253 'UNSIGNED',
1254 'UPDATE',
1255 'USAGE',
1256 'USE',
1257 'USING',
1258 'UTC_DATE',
1259 'UTC_TIME',
1260 'UTC_TIMESTAMP',
1261 'VALUES',
1262 'VARBINARY',
1263 'VARCHAR',
1264 'VARCHARACTER',
1265 'VARYING',
1266 'WHEN',
1267 'WHERE',
1268 'WHILE',
1269 'WITH',
1270 'WRITE',
1271 'XOR',
1272 'YEAR_MONTH',
1273 'ZEROFILL',
1274 ))
1275
1276 MSSQL = set((
1277 'ADD',
1278 'ALL',
1279 'ALTER',
1280 'AND',
1281 'ANY',
1282 'AS',
1283 'ASC',
1284 'AUTHORIZATION',
1285 'BACKUP',
1286 'BEGIN',
1287 'BETWEEN',
1288 'BREAK',
1289 'BROWSE',
1290 'BULK',
1291 'BY',
1292 'CASCADE',
1293 'CASE',
1294 'CHECK',
1295 'CHECKPOINT',
1296 'CLOSE',
1297 'CLUSTERED',
1298 'COALESCE',
1299 'COLLATE',
1300 'COLUMN',
1301 'COMMIT',
1302 'COMPUTE',
1303 'CONSTRAINT',
1304 'CONTAINS',
1305 'CONTAINSTABLE',
1306 'CONTINUE',
1307 'CONVERT',
1308 'CREATE',
1309 'CROSS',
1310 'CURRENT',
1311 'CURRENT_DATE',
1312 'CURRENT_TIME',
1313 'CURRENT_TIMESTAMP',
1314 'CURRENT_USER',
1315 'CURSOR',
1316 'DATABASE',
1317 'DBCC',
1318 'DEALLOCATE',
1319 'DECLARE',
1320 'DEFAULT',
1321 'DELETE',
1322 'DENY',
1323 'DESC',
1324 'DISK',
1325 'DISTINCT',
1326 'DISTRIBUTED',
1327 'DOUBLE',
1328 'DROP',
1329 'DUMMY',
1330 'DUMP',
1331 'ELSE',
1332 'END',
1333 'ERRLVL',
1334 'ESCAPE',
1335 'EXCEPT',
1336 'EXEC',
1337 'EXECUTE',
1338 'EXISTS',
1339 'EXIT',
1340 'FETCH',
1341 'FILE',
1342 'FILLFACTOR',
1343 'FOR',
1344 'FOREIGN',
1345 'FREETEXT',
1346 'FREETEXTTABLE',
1347 'FROM',
1348 'FULL',
1349 'FUNCTION',
1350 'GOTO',
1351 'GRANT',
1352 'GROUP',
1353 'HAVING',
1354 'HOLDLOCK',
1355 'IDENTITY',
1356 'IDENTITY_INSERT',
1357 'IDENTITYCOL',
1358 'IF',
1359 'IN',
1360 'INDEX',
1361 'INNER',
1362 'INSERT',
1363 'INTERSECT',
1364 'INTO',
1365 'IS',
1366 'JOIN',
1367 'KEY',
1368 'KILL',
1369 'LEFT',
1370 'LIKE',
1371 'LINENO',
1372 'LOAD',
1373 'NATIONAL ',
1374 'NOCHECK',
1375 'NONCLUSTERED',
1376 'NOT',
1377 'NULL',
1378 'NULLIF',
1379 'OF',
1380 'OFF',
1381 'OFFSETS',
1382 'ON',
1383 'OPEN',
1384 'OPENDATASOURCE',
1385 'OPENQUERY',
1386 'OPENROWSET',
1387 'OPENXML',
1388 'OPTION',
1389 'OR',
1390 'ORDER',
1391 'OUTER',
1392 'OVER',
1393 'PERCENT',
1394 'PLAN',
1395 'PRECISION',
1396 'PRIMARY',
1397 'PRINT',
1398 'PROC',
1399 'PROCEDURE',
1400 'PUBLIC',
1401 'RAISERROR',
1402 'READ',
1403 'READTEXT',
1404 'RECONFIGURE',
1405 'REFERENCES',
1406 'REPLICATION',
1407 'RESTORE',
1408 'RESTRICT',
1409 'RETURN',
1410 'REVOKE',
1411 'RIGHT',
1412 'ROLLBACK',
1413 'ROWCOUNT',
1414 'ROWGUIDCOL',
1415 'RULE',
1416 'SAVE',
1417 'SCHEMA',
1418 'SELECT',
1419 'SESSION_USER',
1420 'SET',
1421 'SETUSER',
1422 'SHUTDOWN',
1423 'SOME',
1424 'STATISTICS',
1425 'SYSTEM_USER',
1426 'TABLE',
1427 'TEXTSIZE',
1428 'THEN',
1429 'TO',
1430 'TOP',
1431 'TRAN',
1432 'TRANSACTION',
1433 'TRIGGER',
1434 'TRUNCATE',
1435 'TSEQUAL',
1436 'UNION',
1437 'UNIQUE',
1438 'UPDATE',
1439 'UPDATETEXT',
1440 'USE',
1441 'USER',
1442 'VALUES',
1443 'VARYING',
1444 'VIEW',
1445 'WAITFOR',
1446 'WHEN',
1447 'WHERE',
1448 'WHILE',
1449 'WITH',
1450 'WRITETEXT',
1451 ))
1452
1453 ORACLE = set((
1454 'ACCESS',
1455 'ADD',
1456 'ALL',
1457 'ALTER',
1458 'AND',
1459 'ANY',
1460 'AS',
1461 'ASC',
1462 'AUDIT',
1463 'BETWEEN',
1464 'BY',
1465 'CHAR',
1466 'CHECK',
1467 'CLUSTER',
1468 'COLUMN',
1469 'COMMENT',
1470 'COMPRESS',
1471 'CONNECT',
1472 'CREATE',
1473 'CURRENT',
1474 'DATE',
1475 'DECIMAL',
1476 'DEFAULT',
1477 'DELETE',
1478 'DESC',
1479 'DISTINCT',
1480 'DROP',
1481 'ELSE',
1482 'EXCLUSIVE',
1483 'EXISTS',
1484 'FILE',
1485 'FLOAT',
1486 'FOR',
1487 'FROM',
1488 'GRANT',
1489 'GROUP',
1490 'HAVING',
1491 'IDENTIFIED',
1492 'IMMEDIATE',
1493 'IN',
1494 'INCREMENT',
1495 'INDEX',
1496 'INITIAL',
1497 'INSERT',
1498 'INTEGER',
1499 'INTERSECT',
1500 'INTO',
1501 'IS',
1502 'LEVEL',
1503 'LIKE',
1504 'LOCK',
1505 'LONG',
1506 'MAXEXTENTS',
1507 'MINUS',
1508 'MLSLABEL',
1509 'MODE',
1510 'MODIFY',
1511 'NOAUDIT',
1512 'NOCOMPRESS',
1513 'NOT',
1514 'NOWAIT',
1515 'NULL',
1516 'NUMBER',
1517 'OF',
1518 'OFFLINE',
1519 'ON',
1520 'ONLINE',
1521 'OPTION',
1522 'OR',
1523 'ORDER',
1524 'PCTFREE',
1525 'PRIOR',
1526 'PRIVILEGES',
1527 'PUBLIC',
1528 'RAW',
1529 'RENAME',
1530 'RESOURCE',
1531 'REVOKE',
1532 'ROW',
1533 'ROWID',
1534 'ROWNUM',
1535 'ROWS',
1536 'SELECT',
1537 'SESSION',
1538 'SET',
1539 'SHARE',
1540 'SIZE',
1541 'SMALLINT',
1542 'START',
1543 'SUCCESSFUL',
1544 'SYNONYM',
1545 'SYSDATE',
1546 'TABLE',
1547 'THEN',
1548 'TO',
1549 'TRIGGER',
1550 'UID',
1551 'UNION',
1552 'UNIQUE',
1553 'UPDATE',
1554 'USER',
1555 'VALIDATE',
1556 'VALUES',
1557 'VARCHAR',
1558 'VARCHAR2',
1559 'VIEW',
1560 'WHENEVER',
1561 'WHERE',
1562 'WITH',
1563 ))
1564
1565 SQLITE = set((
1566 'ABORT',
1567 'ACTION',
1568 'ADD',
1569 'AFTER',
1570 'ALL',
1571 'ALTER',
1572 'ANALYZE',
1573 'AND',
1574 'AS',
1575 'ASC',
1576 'ATTACH',
1577 'AUTOINCREMENT',
1578 'BEFORE',
1579 'BEGIN',
1580 'BETWEEN',
1581 'BY',
1582 'CASCADE',
1583 'CASE',
1584 'CAST',
1585 'CHECK',
1586 'COLLATE',
1587 'COLUMN',
1588 'COMMIT',
1589 'CONFLICT',
1590 'CONSTRAINT',
1591 'CREATE',
1592 'CROSS',
1593 'CURRENT_DATE',
1594 'CURRENT_TIME',
1595 'CURRENT_TIMESTAMP',
1596 'DATABASE',
1597 'DEFAULT',
1598 'DEFERRABLE',
1599 'DEFERRED',
1600 'DELETE',
1601 'DESC',
1602 'DETACH',
1603 'DISTINCT',
1604 'DROP',
1605 'EACH',
1606 'ELSE',
1607 'END',
1608 'ESCAPE',
1609 'EXCEPT',
1610 'EXCLUSIVE',
1611 'EXISTS',
1612 'EXPLAIN',
1613 'FAIL',
1614 'FOR',
1615 'FOREIGN',
1616 'FROM',
1617 'FULL',
1618 'GLOB',
1619 'GROUP',
1620 'HAVING',
1621 'IF',
1622 'IGNORE',
1623 'IMMEDIATE',
1624 'IN',
1625 'INDEX',
1626 'INDEXED',
1627 'INITIALLY',
1628 'INNER',
1629 'INSERT',
1630 'INSTEAD',
1631 'INTERSECT',
1632 'INTO',
1633 'IS',
1634 'ISNULL',
1635 'JOIN',
1636 'KEY',
1637 'LEFT',
1638 'LIKE',
1639 'LIMIT',
1640 'MATCH',
1641 'NATURAL',
1642 'NO',
1643 'NOT',
1644 'NOTNULL',
1645 'NULL',
1646 'OF',
1647 'OFFSET',
1648 'ON',
1649 'OR',
1650 'ORDER',
1651 'OUTER',
1652 'PLAN',
1653 'PRAGMA',
1654 'PRIMARY',
1655 'QUERY',
1656 'RAISE',
1657 'REFERENCES',
1658 'REGEXP',
1659 'REINDEX',
1660 'RELEASE',
1661 'RENAME',
1662 'REPLACE',
1663 'RESTRICT',
1664 'RIGHT',
1665 'ROLLBACK',
1666 'ROW',
1667 'SAVEPOINT',
1668 'SELECT',
1669 'SET',
1670 'TABLE',
1671 'TEMP',
1672 'TEMPORARY',
1673 'THEN',
1674 'TO',
1675 'TRANSACTION',
1676 'TRIGGER',
1677 'UNION',
1678 'UNIQUE',
1679 'UPDATE',
1680 'USING',
1681 'VACUUM',
1682 'VALUES',
1683 'VIEW',
1684 'VIRTUAL',
1685 'WHEN',
1686 'WHERE',
1687 ))
1688
1689
1690 JDBCSQLITE = SQLITE
1691 DB2 = INFORMIX = INGRES = JDBCPOSTGRESQL = COMMON
1692
1693 ADAPTERS = {
1694 'sqlite': SQLITE,
1695 'mysql': MYSQL,
1696 'postgres': POSTGRESQL,
1697 'postgres_nonreserved': POSTGRESQL_NONRESERVED,
1698 'oracle': ORACLE,
1699 'mssql': MSSQL,
1700 'mssql2': MSSQL,
1701 'db2': DB2,
1702 'informix': INFORMIX,
1703 'firebird': FIREBIRD,
1704 'firebird_embedded': FIREBIRD,
1705 'firebird_nonreserved': FIREBIRD_NONRESERVED,
1706 'ingres': INGRES,
1707 'ingresu': INGRES,
1708 'jdbc:sqlite': JDBCSQLITE,
1709 'jdbc:postgres': JDBCPOSTGRESQL,
1710 'common': COMMON,
1711 }
1712
1713 ADAPTERS['all'] = reduce(lambda a,b:a.union(b),(x for x in ADAPTERS.values()))
1714