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