1#[cfg(feature = "serde")]
31use serde::{Deserialize, Serialize};
32
33#[cfg(feature = "visitor")]
34use sqlparser_derive::{Visit, VisitMut};
35
36macro_rules! kw_def {
39 ($ident:ident = $string_keyword:expr) => {
40 #[doc = concat!("The `", $string_keyword, "` SQL keyword.")]
41 pub const $ident: &'static str = $string_keyword;
42 };
43 ($ident:ident) => {
44 kw_def!($ident = stringify!($ident));
45 };
46}
47
48macro_rules! define_keywords {
51 ($(
52 $ident:ident $(= $string_keyword:expr)?
53 ),*) => {
54 #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)]
55 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
56 #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
57 #[allow(non_camel_case_types)]
58 pub enum Keyword {
60 NoKeyword,
62 $(
63 #[doc = concat!("The `", stringify!($ident), "` SQL keyword.")]
64 $ident
65 ),*
66 }
67
68 pub const ALL_KEYWORDS_INDEX: &[Keyword] = &[
70 $(Keyword::$ident),*
71 ];
72
73 $(kw_def!($ident $(= $string_keyword)?);)*
74 pub const ALL_KEYWORDS: &[&str] = &[
76 $($ident),*
77 ];
78
79 impl core::fmt::Display for Keyword {
80 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
81 match self {
82 Keyword::NoKeyword => write!(f, "NoKeyword"),
83 $(Keyword::$ident => write!(f, "{}", $ident),)*
84 }
85 }
86 }
87 };
88}
89
90define_keywords!(
92 ABORT,
93 ABS,
94 ABSENT,
95 ABSOLUTE,
96 ACCEPTANYDATE,
97 ACCEPTINVCHARS,
98 ACCESS,
99 ACCOUNT,
100 ACTION,
101 ADD,
102 ADDQUOTES,
103 ADMIN,
104 AFTER,
105 AGAINST,
106 AGGREGATE,
107 AGGREGATION,
108 ALERT,
109 ALGORITHM,
110 ALIAS,
111 ALIGNMENT,
112 ALL,
113 ALLOCATE,
114 ALLOWOVERWRITE,
115 ALSO,
116 ALTER,
117 ALWAYS,
118 ANALYZE,
119 AND,
120 ANTI,
121 ANY,
122 APPLICATION,
123 APPLY,
124 APPLYBUDGET,
125 ARCHIVE,
126 ARE,
127 ARRAY,
128 ARRAY_MAX_CARDINALITY,
129 AS,
130 ASC,
131 ASENSITIVE,
132 ASOF,
133 ASSERT,
134 ASSIGNMENT,
135 ASYMMETRIC,
136 AT,
137 ATOMIC,
138 ATTACH,
139 AUDIT,
140 AUTHENTICATION,
141 AUTHORIZATION,
142 AUTHORIZATIONS,
143 AUTO,
144 AUTOEXTEND_SIZE,
145 AUTOINCREMENT,
146 AUTO_INCREMENT,
147 AVG,
148 AVG_ROW_LENGTH,
149 AVRO,
150 BACKUP,
151 BACKWARD,
152 BASE64,
153 BASE_LOCATION,
154 BEFORE,
155 BEGIN,
156 BEGIN_FRAME,
157 BEGIN_PARTITION,
158 BERNOULLI,
159 BETWEEN,
160 BIGDECIMAL,
161 BIGINT,
162 BIGNUMERIC,
163 BINARY,
164 BIND,
165 BINDING,
166 BIT,
167 BLANKSASNULL,
168 BLOB,
169 BLOCK,
170 BLOOM,
171 BLOOMFILTER,
172 BOOL,
173 BOOLEAN,
174 BOOST,
175 BOTH,
176 BOX,
177 BRIN,
178 BROWSE,
179 BTREE,
180 BUCKET,
181 BUCKETS,
182 BY,
183 BYPASSRLS,
184 BYTEA,
185 BYTES,
186 BZIP2,
187 CACHE,
188 CALL,
189 CALLED,
190 CANONICAL,
191 CARDINALITY,
192 CASCADE,
193 CASCADED,
194 CASE,
195 CASES,
196 CAST,
197 CATALOG,
198 CATALOGS,
199 CATALOG_SYNC,
200 CATALOG_SYNC_NAMESPACE_FLATTEN_DELIMITER,
201 CATALOG_SYNC_NAMESPACE_MODE,
202 CATCH,
203 CATEGORY,
204 CEIL,
205 CEILING,
206 CENTURY,
207 CHAIN,
208 CHANGE,
209 CHANGES,
210 CHANGE_TRACKING,
211 CHANNEL,
212 CHAR,
213 CHARACTER,
214 CHARACTERISTICS,
215 CHARACTERS,
216 CHARACTER_LENGTH,
217 CHARSET,
218 CHAR_LENGTH,
219 CHECK,
220 CHECKSUM,
221 CIRCLE,
222 CLASS,
223 CLEANPATH,
224 CLEAR,
225 CLOB,
226 CLONE,
227 CLOSE,
228 CLUSTER,
229 CLUSTERED,
230 CLUSTERING,
231 COALESCE,
232 COLLATABLE,
233 COLLATE,
234 COLLATION,
235 COLLECT,
236 COLLECTION,
237 COLUMN,
238 COLUMNS,
239 COLUMNSTORE,
240 COMMENT,
241 COMMIT,
242 COMMITTED,
243 COMMUTATOR,
244 COMPATIBLE,
245 COMPRESS,
246 COMPRESSION,
247 COMPUPDATE,
248 COMPUTE,
249 CONFIGURATION,
250 CONCURRENTLY,
251 CONDITION,
252 CONFLICT,
253 CONNECT,
254 CONNECTION,
255 CONNECTOR,
256 CONNECT_BY_ROOT,
257 CONSTRAINT,
258 CONTACT,
259 CONTAINS,
260 CONTINUE,
261 CONVERSION,
262 CONVERT,
263 COPY,
264 COPY_OPTIONS,
265 CORR,
266 CORRESPONDING,
267 COST,
268 COUNT,
269 COVAR_POP,
270 COVAR_SAMP,
271 CREATE,
272 CREATEDB,
273 CREATEROLE,
274 CREDENTIALS,
275 CROSS,
276 CSV,
277 CUBE,
278 CUME_DIST,
279 CURRENT,
280 CURRENT_CATALOG,
281 CURRENT_DATE,
282 CURRENT_DEFAULT_TRANSFORM_GROUP,
283 CURRENT_PATH,
284 CURRENT_ROLE,
285 CURRENT_ROW,
286 CURRENT_SCHEMA,
287 CURRENT_TIME,
288 CURRENT_TIMESTAMP,
289 CURRENT_TRANSFORM_GROUP_FOR_TYPE,
290 CURRENT_USER,
291 CURSOR,
292 CYCLE,
293 DATA,
294 DATABASE,
295 DATABASES,
296 DATA_RETENTION_TIME_IN_DAYS,
297 DATE,
298 DATE32,
299 DATEFORMAT,
300 DATETIME,
301 DATETIME64,
302 DAY,
303 DAYOFWEEK,
304 DAYOFYEAR,
305 DAYS,
306 DCPROPERTIES,
307 DEALLOCATE,
308 DEC,
309 DECADE,
310 DECIMAL,
311 DECLARE,
312 DEDUPLICATE,
313 DEFAULT,
314 DEFAULTS,
315 DEFAULT_DDL_COLLATION,
316 DEFAULT_MFA_METHOD,
317 DEFAULT_SECONDARY_ROLES,
318 DEFERRABLE,
319 DEFERRED,
320 DEFINE,
321 DEFINED,
322 DEFINER,
323 DELAY,
324 DELAYED,
325 DELAY_KEY_WRITE,
326 DELEGATED,
327 DELETE,
328 DELIMITED,
329 DELIMITER,
330 DELTA,
331 DENSE_RANK,
332 DENY,
333 DEPENDS,
334 DEREF,
335 DESC,
336 DESCRIBE,
337 DETACH,
338 DETAIL,
339 DETERMINISTIC,
340 DICTIONARY,
341 DIMENSIONS,
342 DIRECTORY,
343 DISABLE,
344 DISCARD,
345 DISCONNECT,
346 DISTINCT,
347 DISTINCTROW,
348 DISTKEY,
349 DISTRIBUTE,
350 DISTSTYLE,
351 DIV,
352 DO,
353 DOMAIN,
354 DOUBLE,
355 DOW,
356 DOWNSTREAM,
357 DOY,
358 DROP,
359 DRY,
360 DUO,
361 DUPLICATE,
362 DYNAMIC,
363 EACH,
364 ELEMENT,
365 ELEMENTS,
366 ELSE,
367 ELSEIF,
368 EMPTY,
369 EMPTYASNULL,
370 ENABLE,
371 ENABLE_SCHEMA_EVOLUTION,
372 ENCODING,
373 ENCRYPTED,
374 ENCRYPTION,
375 END,
376 END_EXEC = "END-EXEC",
377 ENDPOINT,
378 END_FRAME,
379 END_PARTITION,
380 ENFORCED,
381 ENGINE,
382 ENGINE_ATTRIBUTE,
383 ENROLL,
384 ENUM,
385 ENUM16,
386 ENUM8,
387 EPHEMERAL,
388 EPOCH,
389 EQUALS,
390 ERROR,
391 ESCAPE,
392 ESCAPED,
393 ESTIMATE,
394 EVEN,
395 EVENT,
396 EVERY,
397 EVOLVE,
398 EXCEPT,
399 EXCEPTION,
400 EXCHANGE,
401 EXCLUDE,
402 EXCLUDING,
403 EXCLUSIVE,
404 EXEC,
405 EXECUTE,
406 EXECUTION,
407 EXISTS,
408 EXP,
409 EXPANSION,
410 EXPLAIN,
411 EXPLICIT,
412 EXPORT,
413 EXTEND,
414 EXTENDED,
415 EXTENSION,
416 EXTERNAL,
417 EXTERNAL_VOLUME,
418 EXTRACT,
419 FACTS,
420 FAIL,
421 FAILOVER,
422 FALSE,
423 FAMILY,
424 FETCH,
425 FIELDS,
426 FILE,
427 FILES,
428 FILE_FORMAT,
429 FILL,
430 FILTER,
431 FINAL,
432 FIRST,
433 FIRST_VALUE,
434 FIXEDSTRING,
435 FIXEDWIDTH,
436 FLATTEN,
437 FLOAT,
438 FLOAT32,
439 FLOAT4,
440 FLOAT64,
441 FLOAT8,
442 FLOOR,
443 FLUSH,
444 FN,
445 FOLLOWING,
446 FOR,
447 FORCE,
448 FORCE_NOT_NULL,
449 FORCE_NULL,
450 FORCE_QUOTE,
451 FOREIGN,
452 FORMAT,
453 FORMATTED,
454 FORWARD,
455 FRAME_ROW,
456 FREE,
457 FREEZE,
458 FROM,
459 FSCK,
460 FULFILLMENT,
461 FULL,
462 FULLTEXT,
463 FUNCTION,
464 FUNCTIONS,
465 FUSION,
466 FUTURE,
467 GB,
468 GENERAL,
469 GENERATE,
470 GENERATED,
471 GEOGRAPHY,
472 GET,
473 GIN,
474 GIST,
475 GLOBAL,
476 GRANT,
477 GRANTED,
478 GRANTS,
479 GRAPHVIZ,
480 GROUP,
481 GROUPING,
482 GROUPS,
483 GZIP,
484 HANDLER,
485 HASH,
486 HASHES,
487 HAVING,
488 HEADER,
489 HEAP,
490 HIGH_PRIORITY,
491 HISTORY,
492 HIVEVAR,
493 HOLD,
494 HOSTS,
495 HOUR,
496 HOURS,
497 HUGEINT,
498 IAM_ROLE,
499 ICEBERG,
500 ID,
501 IDENTIFIED,
502 IDENTITY,
503 IDENTITY_INSERT,
504 IF,
505 IGNORE,
506 IGNOREHEADER,
507 ILIKE,
508 IMMEDIATE,
509 IMMUTABLE,
510 IMPLICIT,
511 IMPORT,
512 IMPORTED,
513 IN,
514 INCLUDE,
515 INCLUDE_NULL_VALUES,
516 INLINE,
517 INCLUDING,
518 INCREMENT,
519 INCREMENTAL,
520 INDEX,
521 INDICATOR,
522 INHERIT,
523 INHERITS,
524 INITIALIZE,
525 INITIALLY,
526 INNER,
527 INOUT,
528 INPATH,
529 INPLACE,
530 INPUT,
531 INPUTFORMAT,
532 INSENSITIVE,
533 INSERT,
534 INSERT_METHOD,
535 INSTALL,
536 INSTANT,
537 INSTEAD,
538 INT,
539 INT128,
540 INT16,
541 INT2,
542 INT256,
543 INT32,
544 INT4,
545 INT64,
546 INT8,
547 INTEGER,
548 INTEGRATION,
549 INTERNALLENGTH,
550 INTERPOLATE,
551 INTERSECT,
552 INTERSECTION,
553 INTERVAL,
554 INTO,
555 INVISIBLE,
556 INVOKER,
557 IO,
558 IS,
559 ISODOW,
560 ISOLATION,
561 ISOWEEK,
562 ISOYEAR,
563 ITEMS,
564 JAR,
565 JOIN,
566 JSON,
567 JSONB,
568 JSONFILE,
569 JSON_TABLE,
570 JULIAN,
571 KEY,
572 KEYS,
573 KEY_BLOCK_SIZE,
574 KILL,
575 LABEL,
576 LAG,
577 LAMBDA,
578 LANGUAGE,
579 LARGE,
580 LAST,
581 LAST_VALUE,
582 LATERAL,
583 LEAD,
584 LEADING,
585 LEAKPROOF,
586 LEAST,
587 LEFT,
588 LEFTARG,
589 LEVEL,
590 LIFECYCLE,
591 LIKE,
592 LIKE_REGEX,
593 LIMIT,
594 LINE,
595 LINES,
596 LIST,
597 LISTEN,
598 LISTING,
599 LN,
600 LOAD,
601 LOCAL,
602 LOCALTIME,
603 LOCALTIMESTAMP,
604 LOCATION,
605 LOCK,
606 LOCKED,
607 LOG,
608 LOGIN,
609 LOGS,
610 LONG,
611 LONGBLOB,
612 LONGTEXT,
613 LOWCARDINALITY,
614 LOWER,
615 LOW_PRIORITY,
616 LS,
617 LSEG,
618 MACRO,
619 MAIN,
620 MANAGE,
621 MANAGED,
622 MANAGEDLOCATION,
623 MANIFEST,
624 MAP,
625 MAPPING,
626 MASKING,
627 MATCH,
628 MATCHED,
629 MATCHES,
630 MATCH_CONDITION,
631 MATCH_RECOGNIZE,
632 MATERIALIZE,
633 MATERIALIZED,
634 MAX,
635 MAXFILESIZE,
636 MAXVALUE,
637 MAX_DATA_EXTENSION_TIME_IN_DAYS,
638 MAX_ROWS,
639 MB,
640 MEASURES,
641 MEDIUMBLOB,
642 MEDIUMINT,
643 MEDIUMTEXT,
644 MEMBER,
645 MERGE,
646 MERGES,
647 MESSAGE,
648 METADATA,
649 METHOD,
650 METRIC,
651 METRICS,
652 MFA,
653 MICROSECOND,
654 MICROSECONDS,
655 MILLENIUM,
656 MILLENNIUM,
657 MILLISECOND,
658 MILLISECONDS,
659 MIN,
660 MINUS,
661 MINUTE,
662 MINUTES,
663 MINVALUE,
664 MIN_ROWS,
665 MOD,
666 MODE,
667 MODIFIES,
668 MODIFY,
669 MODULE,
670 MODULUS,
671 MONITOR,
672 MONTH,
673 MONTHS,
674 MSCK,
675 MULTIRANGE_TYPE_NAME,
676 MULTISET,
677 MUTATION,
678 NAME,
679 NAMES,
680 NANOSECOND,
681 NANOSECONDS,
682 NATIONAL,
683 NATURAL,
684 NCHAR,
685 NCLOB,
686 NEGATOR,
687 NEST,
688 NESTED,
689 NETWORK,
690 NEW,
691 NEXT,
692 NFC,
693 NFD,
694 NFKC,
695 NFKD,
696 NO,
697 NOBYPASSRLS,
698 NOCOMPRESS,
699 NOCREATEDB,
700 NOCREATEROLE,
701 NOCYCLE,
702 NOINHERIT,
703 NOLOGIN,
704 NONE,
705 NOORDER,
706 NOREPLICATION,
707 NORMALIZE,
708 NORMALIZED,
709 NOSCAN,
710 NOSUPERUSER,
711 NOT,
712 NOTHING,
713 NOTIFY,
714 NOTNULL,
715 NOWAIT,
716 NO_WRITE_TO_BINLOG,
717 NTH_VALUE,
718 NTILE,
719 NULL,
720 NULLABLE,
721 NULLIF,
722 NULLS,
723 NUMBER,
724 NUMERIC,
725 NVARCHAR,
726 OBJECT,
727 OBJECTS,
728 OCCURRENCES_REGEX,
729 OCTETS,
730 OCTET_LENGTH,
731 OF,
732 OFF,
733 OFFSET,
734 OFFSETS,
735 OLD,
736 OMIT,
737 ON,
738 ONE,
739 ONLY,
740 ON_CREATE,
741 ON_SCHEDULE,
742 OPEN,
743 OPENJSON,
744 OPERATE,
745 OPERATOR,
746 OPTIMIZATION,
747 OPTIMIZE,
748 OPTIMIZED,
749 OPTIMIZER_COSTS,
750 OPTION,
751 OPTIONS,
752 OR,
753 ORC,
754 ORDER,
755 ORDINALITY,
756 ORGANIZATION,
757 OTHER,
758 OTP,
759 OUT,
760 OUTER,
761 OUTPUT,
762 OUTPUTFORMAT,
763 OVER,
764 OVERFLOW,
765 OVERLAPS,
766 OVERLAY,
767 OVERRIDE,
768 OVERWRITE,
769 OWNED,
770 OWNER,
771 OWNERSHIP,
772 PACKAGE,
773 PACKAGES,
774 PACK_KEYS,
775 PARALLEL,
776 PARAMETER,
777 PARQUET,
778 PARSER,
779 PART,
780 PARTIAL,
781 PARTITION,
782 PARTITIONED,
783 PARTITIONS,
784 PASSEDBYVALUE,
785 PASSING,
786 PASSKEY,
787 PASSWORD,
788 PAST,
789 PATH,
790 PATTERN,
791 PCTFREE,
792 PER,
793 PERCENT,
794 PERCENTILE_CONT,
795 PERCENTILE_DISC,
796 PERCENT_RANK,
797 PERIOD,
798 PERMISSIVE,
799 PERSISTENT,
800 PIVOT,
801 PLACING,
802 PLAIN,
803 PLAN,
804 PLANS,
805 POINT,
806 POLICY,
807 POLYGON,
808 POOL,
809 PORTION,
810 POSITION,
811 POSITION_REGEX,
812 POWER,
813 PRAGMA,
814 PRECEDES,
815 PRECEDING,
816 PRECISION,
817 PREFERRED,
818 PREPARE,
819 PRESERVE,
820 PRESET,
821 PREWHERE,
822 PRIMARY,
823 PRINT,
824 PRIOR,
825 PRIVILEGES,
826 PROCEDURAL,
827 PROCEDURE,
828 PROCESSLIST,
829 PROFILE,
830 PROGRAM,
831 PROJECTION,
832 PUBLIC,
833 PUBLICATION,
834 PURCHASE,
835 PURGE,
836 QUALIFY,
837 QUARTER,
838 QUERIES,
839 QUERY,
840 QUOTE,
841 RAISE,
842 RAISERROR,
843 RANGE,
844 RANK,
845 RAW,
846 RCFILE,
847 READ,
848 READS,
849 READ_ONLY,
850 REAL,
851 RECEIVE,
852 RECLUSTER,
853 RECURSIVE,
854 REF,
855 REFERENCES,
856 REFERENCING,
857 REFRESH,
858 REFRESH_MODE,
859 REGCLASS,
860 REGEXP,
861 REGION,
862 REGR_AVGX,
863 REGR_AVGY,
864 REGR_COUNT,
865 REGR_INTERCEPT,
866 REGR_R2,
867 REGR_SLOPE,
868 REGR_SXX,
869 REGR_SXY,
870 REGR_SYY,
871 REINDEX,
872 RELATIVE,
873 RELAY,
874 RELEASE,
875 RELEASES,
876 REMAINDER,
877 REMOTE,
878 REMOVE,
879 REMOVEQUOTES,
880 RENAME,
881 REORG,
882 REPAIR,
883 REPEATABLE,
884 REPLACE,
885 REPLACE_INVALID_CHARACTERS,
886 REPLICA,
887 REPLICATE,
888 REPLICATION,
889 REQUIRE,
890 RESET,
891 RESOLVE,
892 RESOURCE,
893 RESPECT,
894 RESTART,
895 RESTRICT,
896 RESTRICTED,
897 RESTRICTIONS,
898 RESTRICTIVE,
899 RESULT,
900 RESULTSET,
901 RESUME,
902 RETAIN,
903 RETURN,
904 RETURNING,
905 RETURNS,
906 REVOKE,
907 RIGHT,
908 RIGHTARG,
909 RLIKE,
910 RM,
911 ROLE,
912 ROLES,
913 ROLLBACK,
914 ROLLUP,
915 ROOT,
916 ROW,
917 ROWGROUPSIZE,
918 ROWID,
919 ROWS,
920 ROW_FORMAT,
921 ROW_NUMBER,
922 RULE,
923 RUN,
924 SAFE,
925 SAFE_CAST,
926 SAMPLE,
927 SAVEPOINT,
928 SCHEMA,
929 SCHEMAS,
930 SCOPE,
931 SCROLL,
932 SEARCH,
933 SECOND,
934 SECONDARY,
935 SECONDARY_ENGINE_ATTRIBUTE,
936 SECONDS,
937 SECRET,
938 SECURE,
939 SECURITY,
940 SEED,
941 SELECT,
942 SEMANTIC_VIEW,
943 SEMI,
944 SEND,
945 SENSITIVE,
946 SEPARATOR,
947 SEQUENCE,
948 SEQUENCEFILE,
949 SEQUENCES,
950 SERDE,
951 SERDEPROPERTIES,
952 SERIALIZABLE,
953 SERVER,
954 SERVICE,
955 SESSION,
956 SESSION_USER,
957 SET,
958 SETERROR,
959 SETOF,
960 SETS,
961 SETTINGS,
962 SHARE,
963 SHARED,
964 SHARING,
965 SHOW,
966 SIGNED,
967 SIMILAR,
968 SIMPLE,
969 SIZE,
970 SKIP,
971 SLOW,
972 SMALLINT,
973 SNAPSHOT,
974 SOME,
975 SORT,
976 SORTED,
977 SORTKEY,
978 SOURCE,
979 SPATIAL,
980 SPECIFIC,
981 SPECIFICTYPE,
982 SPGIST,
983 SQL,
984 SQLEXCEPTION,
985 SQLSTATE,
986 SQLWARNING,
987 SQL_BIG_RESULT,
988 SQL_BUFFER_RESULT,
989 SQL_CALC_FOUND_ROWS,
990 SQL_NO_CACHE,
991 SQL_SMALL_RESULT,
992 SQRT,
993 SRID,
994 STABLE,
995 STAGE,
996 START,
997 STARTS,
998 STATEMENT,
999 STATIC,
1000 STATISTICS,
1001 STATS_AUTO_RECALC,
1002 STATS_PERSISTENT,
1003 STATS_SAMPLE_PAGES,
1004 STATUPDATE,
1005 STATUS,
1006 STDDEV_POP,
1007 STDDEV_SAMP,
1008 STDIN,
1009 STDOUT,
1010 STEP,
1011 STORAGE,
1012 STORAGE_INTEGRATION,
1013 STORAGE_SERIALIZATION_POLICY,
1014 STORED,
1015 STRAIGHT_JOIN,
1016 STREAM,
1017 STRICT,
1018 STRING,
1019 STRUCT,
1020 SUBMULTISET,
1021 SUBSCRIPT,
1022 SUBSCRIPTION,
1023 SUBSTR,
1024 SUBSTRING,
1025 SUBSTRING_REGEX,
1026 SUBTYPE,
1027 SUBTYPE_DIFF,
1028 SUBTYPE_OPCLASS,
1029 SUCCEEDS,
1030 SUM,
1031 SUPER,
1032 SUPERUSER,
1033 SUPPORT,
1034 SUSPEND,
1035 SWAP,
1036 SYMMETRIC,
1037 SYNC,
1038 SYNONYM,
1039 SYSTEM,
1040 SYSTEM_TIME,
1041 SYSTEM_USER,
1042 TABLE,
1043 TABLES,
1044 TABLESAMPLE,
1045 TABLESPACE,
1046 TAG,
1047 TARGET,
1048 TARGET_LAG,
1049 TASK,
1050 TBLPROPERTIES,
1051 TEMP,
1052 TEMPLATE,
1053 TEMPORARY,
1054 TEMPTABLE,
1055 TERMINATED,
1056 TERSE,
1057 TEXT,
1058 TEXTFILE,
1059 THEN,
1060 THROW,
1061 TIES,
1062 TIME,
1063 TIMEFORMAT,
1064 TIMESTAMP,
1065 TIMESTAMPTZ,
1066 TIMESTAMP_NTZ,
1067 TIMETZ,
1068 TIMEZONE,
1069 TIMEZONE_ABBR,
1070 TIMEZONE_HOUR,
1071 TIMEZONE_MINUTE,
1072 TIMEZONE_REGION,
1073 TINYBLOB,
1074 TINYINT,
1075 TINYTEXT,
1076 TO,
1077 TOP,
1078 TOTALS,
1079 TOTP,
1080 TRACE,
1081 TRAILING,
1082 TRAN,
1083 TRANSACTION,
1084 TRANSIENT,
1085 TRANSFORM,
1086 TRANSLATE,
1087 TRANSLATE_REGEX,
1088 TRANSLATION,
1089 TREAT,
1090 TREE,
1091 TRIGGER,
1092 TRIM,
1093 TRIM_ARRAY,
1094 TRUE,
1095 TRUNCATE,
1096 TRUNCATECOLUMNS,
1097 TRUSTED,
1098 TRY,
1099 TRY_CAST,
1100 TRY_CONVERT,
1101 TSQUERY,
1102 TSVECTOR,
1103 TUPLE,
1104 TYPE,
1105 TYPMOD_IN,
1106 TYPMOD_OUT,
1107 UBIGINT,
1108 UESCAPE,
1109 UHUGEINT,
1110 UINT128,
1111 UINT16,
1112 UINT256,
1113 UINT32,
1114 UINT64,
1115 UINT8,
1116 UNBOUNDED,
1117 UNCACHE,
1118 UNCOMMITTED,
1119 UNDEFINED,
1120 UNFREEZE,
1121 UNION,
1122 UNIQUE,
1123 UNKNOWN,
1124 UNLISTEN,
1125 UNLOAD,
1126 UNLOCK,
1127 UNLOGGED,
1128 UNMATCHED,
1129 UNNEST,
1130 UNPIVOT,
1131 UNSAFE,
1132 UNSET,
1133 UNSIGNED,
1134 UNTIL,
1135 UPDATE,
1136 UPPER,
1137 URL,
1138 USAGE,
1139 USE,
1140 USER,
1141 USER_RESOURCES,
1142 USING,
1143 USMALLINT,
1144 UTINYINT,
1145 UUID,
1146 VACUUM,
1147 VALID,
1148 VALIDATE,
1149 VALIDATION_MODE,
1150 VALIDATOR,
1151 VALUE,
1152 VALUES,
1153 VALUE_OF,
1154 VARBINARY,
1155 VARBIT,
1156 VARCHAR,
1157 VARCHAR2,
1158 VARIABLE,
1159 VARIABLES,
1160 VARIADIC,
1161 VARYING,
1162 VAR_POP,
1163 VAR_SAMP,
1164 VERBOSE,
1165 VERSION,
1166 VERSIONING,
1167 VERSIONS,
1168 VIEW,
1169 VIEWS,
1170 VIRTUAL,
1171 VOLATILE,
1172 VOLUME,
1173 WAITFOR,
1174 WAREHOUSE,
1175 WAREHOUSES,
1176 WEEK,
1177 WEEKS,
1178 WHEN,
1179 WHENEVER,
1180 WHERE,
1181 WHILE,
1182 WIDTH_BUCKET,
1183 WINDOW,
1184 WITH,
1185 WITHIN,
1186 WITHOUT,
1187 WITHOUT_ARRAY_WRAPPER,
1188 WORK,
1189 WORKLOAD_IDENTITY,
1190 WRAPPER,
1191 WRITE,
1192 XML,
1193 XMLNAMESPACES,
1194 XMLTABLE,
1195 XOR,
1196 YEAR,
1197 YEARS,
1198 YES,
1199 ZONE,
1200 ZORDER,
1201 ZSTD
1202);
1203
1204pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1207 Keyword::WITH,
1209 Keyword::EXPLAIN,
1210 Keyword::ANALYZE,
1211 Keyword::SELECT,
1212 Keyword::WHERE,
1213 Keyword::GROUP,
1214 Keyword::SORT,
1215 Keyword::HAVING,
1216 Keyword::ORDER,
1217 Keyword::PIVOT,
1218 Keyword::UNPIVOT,
1219 Keyword::TOP,
1220 Keyword::LATERAL,
1221 Keyword::VIEW,
1222 Keyword::LIMIT,
1223 Keyword::OFFSET,
1224 Keyword::FETCH,
1225 Keyword::UNION,
1226 Keyword::EXCEPT,
1227 Keyword::INTERSECT,
1228 Keyword::MINUS,
1229 Keyword::ON,
1231 Keyword::JOIN,
1232 Keyword::INNER,
1233 Keyword::CROSS,
1234 Keyword::FULL,
1235 Keyword::LEFT,
1236 Keyword::RIGHT,
1237 Keyword::NATURAL,
1238 Keyword::USING,
1239 Keyword::CLUSTER,
1240 Keyword::DISTRIBUTE,
1241 Keyword::GLOBAL,
1242 Keyword::ANTI,
1243 Keyword::SEMI,
1244 Keyword::RETURNING,
1245 Keyword::OUTPUT,
1246 Keyword::ASOF,
1247 Keyword::MATCH_CONDITION,
1248 Keyword::OUTER,
1250 Keyword::SET,
1251 Keyword::QUALIFY,
1252 Keyword::WINDOW,
1253 Keyword::END,
1254 Keyword::FOR,
1255 Keyword::PARTITION,
1257 Keyword::PREWHERE,
1259 Keyword::SETTINGS,
1260 Keyword::FORMAT,
1261 Keyword::START,
1263 Keyword::CONNECT,
1264 Keyword::MATCH_RECOGNIZE,
1266 Keyword::SAMPLE,
1268 Keyword::TABLESAMPLE,
1269 Keyword::FROM,
1270 Keyword::OPEN,
1271];
1272
1273pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1276 Keyword::WITH,
1278 Keyword::EXPLAIN,
1279 Keyword::ANALYZE,
1280 Keyword::SELECT,
1281 Keyword::WHERE,
1282 Keyword::GROUP,
1283 Keyword::SORT,
1284 Keyword::HAVING,
1285 Keyword::ORDER,
1286 Keyword::TOP,
1287 Keyword::LATERAL,
1288 Keyword::VIEW,
1289 Keyword::LIMIT,
1290 Keyword::OFFSET,
1291 Keyword::FETCH,
1292 Keyword::UNION,
1293 Keyword::EXCEPT,
1294 Keyword::EXCLUDE,
1295 Keyword::INTERSECT,
1296 Keyword::MINUS,
1297 Keyword::CLUSTER,
1298 Keyword::DISTRIBUTE,
1299 Keyword::RETURNING,
1300 Keyword::VALUES,
1301 Keyword::FROM,
1303 Keyword::INTO,
1304 Keyword::END,
1305];
1306
1307pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1311 Keyword::INTO,
1312 Keyword::LIMIT,
1313 Keyword::HAVING,
1314 Keyword::WHERE,
1315];
1316
1317pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1321 Keyword::EXISTS,
1322 Keyword::INTERVAL,
1323 Keyword::STRUCT,
1324 Keyword::TRIM,
1325];