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