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 SCHEMA,
924 SCHEMAS,
925 SCOPE,
926 SCROLL,
927 SEARCH,
928 SECOND,
929 SECONDARY,
930 SECONDARY_ENGINE_ATTRIBUTE,
931 SECONDS,
932 SECRET,
933 SECURE,
934 SECURITY,
935 SEED,
936 SELECT,
937 SEMANTIC_VIEW,
938 SEMI,
939 SEND,
940 SENSITIVE,
941 SEPARATOR,
942 SEQUENCE,
943 SEQUENCEFILE,
944 SEQUENCES,
945 SERDE,
946 SERDEPROPERTIES,
947 SERIALIZABLE,
948 SERVER,
949 SERVICE,
950 SESSION,
951 SESSION_USER,
952 SET,
953 SETERROR,
954 SETOF,
955 SETS,
956 SETTINGS,
957 SHARE,
958 SHARED,
959 SHARING,
960 SHOW,
961 SIGNED,
962 SIMILAR,
963 SIMPLE,
964 SIZE,
965 SKIP,
966 SLOW,
967 SMALLINT,
968 SNAPSHOT,
969 SOME,
970 SORT,
971 SORTED,
972 SORTKEY,
973 SOURCE,
974 SPATIAL,
975 SPECIFIC,
976 SPECIFICTYPE,
977 SPGIST,
978 SQL,
979 SQLEXCEPTION,
980 SQLSTATE,
981 SQLWARNING,
982 SQL_BIG_RESULT,
983 SQL_BUFFER_RESULT,
984 SQL_CALC_FOUND_ROWS,
985 SQL_NO_CACHE,
986 SQL_SMALL_RESULT,
987 SQRT,
988 SRID,
989 STABLE,
990 STAGE,
991 START,
992 STARTS,
993 STATEMENT,
994 STATIC,
995 STATISTICS,
996 STATS_AUTO_RECALC,
997 STATS_PERSISTENT,
998 STATS_SAMPLE_PAGES,
999 STATUPDATE,
1000 STATUS,
1001 STDDEV_POP,
1002 STDDEV_SAMP,
1003 STDIN,
1004 STDOUT,
1005 STEP,
1006 STORAGE,
1007 STORAGE_INTEGRATION,
1008 STORAGE_SERIALIZATION_POLICY,
1009 STORED,
1010 STRAIGHT_JOIN,
1011 STREAM,
1012 STRICT,
1013 STRING,
1014 STRUCT,
1015 SUBMULTISET,
1016 SUBSCRIPT,
1017 SUBSTR,
1018 SUBSTRING,
1019 SUBSTRING_REGEX,
1020 SUBTYPE,
1021 SUBTYPE_DIFF,
1022 SUBTYPE_OPCLASS,
1023 SUCCEEDS,
1024 SUM,
1025 SUPER,
1026 SUPERUSER,
1027 SUPPORT,
1028 SUSPEND,
1029 SWAP,
1030 SYMMETRIC,
1031 SYNC,
1032 SYNONYM,
1033 SYSTEM,
1034 SYSTEM_TIME,
1035 SYSTEM_USER,
1036 TABLE,
1037 TABLES,
1038 TABLESAMPLE,
1039 TABLESPACE,
1040 TAG,
1041 TARGET,
1042 TARGET_LAG,
1043 TASK,
1044 TBLPROPERTIES,
1045 TEMP,
1046 TEMPLATE,
1047 TEMPORARY,
1048 TEMPTABLE,
1049 TERMINATED,
1050 TERSE,
1051 TEXT,
1052 TEXTFILE,
1053 THEN,
1054 THROW,
1055 TIES,
1056 TIME,
1057 TIMEFORMAT,
1058 TIMESTAMP,
1059 TIMESTAMPTZ,
1060 TIMESTAMP_NTZ,
1061 TIMETZ,
1062 TIMEZONE,
1063 TIMEZONE_ABBR,
1064 TIMEZONE_HOUR,
1065 TIMEZONE_MINUTE,
1066 TIMEZONE_REGION,
1067 TINYBLOB,
1068 TINYINT,
1069 TINYTEXT,
1070 TO,
1071 TOP,
1072 TOTALS,
1073 TOTP,
1074 TRACE,
1075 TRAILING,
1076 TRAN,
1077 TRANSACTION,
1078 TRANSIENT,
1079 TRANSLATE,
1080 TRANSLATE_REGEX,
1081 TRANSLATION,
1082 TREAT,
1083 TREE,
1084 TRIGGER,
1085 TRIM,
1086 TRIM_ARRAY,
1087 TRUE,
1088 TRUNCATE,
1089 TRUNCATECOLUMNS,
1090 TRY,
1091 TRY_CAST,
1092 TRY_CONVERT,
1093 TSQUERY,
1094 TSVECTOR,
1095 TUPLE,
1096 TYPE,
1097 TYPMOD_IN,
1098 TYPMOD_OUT,
1099 UBIGINT,
1100 UESCAPE,
1101 UHUGEINT,
1102 UINT128,
1103 UINT16,
1104 UINT256,
1105 UINT32,
1106 UINT64,
1107 UINT8,
1108 UNBOUNDED,
1109 UNCACHE,
1110 UNCOMMITTED,
1111 UNDEFINED,
1112 UNFREEZE,
1113 UNION,
1114 UNIQUE,
1115 UNKNOWN,
1116 UNLISTEN,
1117 UNLOAD,
1118 UNLOCK,
1119 UNLOGGED,
1120 UNMATCHED,
1121 UNNEST,
1122 UNPIVOT,
1123 UNSAFE,
1124 UNSET,
1125 UNSIGNED,
1126 UNTIL,
1127 UPDATE,
1128 UPPER,
1129 URL,
1130 USAGE,
1131 USE,
1132 USER,
1133 USER_RESOURCES,
1134 USING,
1135 USMALLINT,
1136 UTINYINT,
1137 UUID,
1138 VACUUM,
1139 VALID,
1140 VALIDATE,
1141 VALIDATION_MODE,
1142 VALUE,
1143 VALUES,
1144 VALUE_OF,
1145 VARBINARY,
1146 VARBIT,
1147 VARCHAR,
1148 VARCHAR2,
1149 VARIABLE,
1150 VARIABLES,
1151 VARIADIC,
1152 VARYING,
1153 VAR_POP,
1154 VAR_SAMP,
1155 VERBOSE,
1156 VERSION,
1157 VERSIONING,
1158 VERSIONS,
1159 VIEW,
1160 VIEWS,
1161 VIRTUAL,
1162 VOLATILE,
1163 VOLUME,
1164 WAITFOR,
1165 WAREHOUSE,
1166 WAREHOUSES,
1167 WEEK,
1168 WEEKS,
1169 WHEN,
1170 WHENEVER,
1171 WHERE,
1172 WHILE,
1173 WIDTH_BUCKET,
1174 WINDOW,
1175 WITH,
1176 WITHIN,
1177 WITHOUT,
1178 WITHOUT_ARRAY_WRAPPER,
1179 WORK,
1180 WORKLOAD_IDENTITY,
1181 WRAPPER,
1182 WRITE,
1183 XML,
1184 XMLNAMESPACES,
1185 XMLTABLE,
1186 XOR,
1187 YEAR,
1188 YEARS,
1189 YES,
1190 ZONE,
1191 ZORDER,
1192 ZSTD
1193);
1194
1195pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1198 Keyword::WITH,
1200 Keyword::EXPLAIN,
1201 Keyword::ANALYZE,
1202 Keyword::SELECT,
1203 Keyword::WHERE,
1204 Keyword::GROUP,
1205 Keyword::SORT,
1206 Keyword::HAVING,
1207 Keyword::ORDER,
1208 Keyword::PIVOT,
1209 Keyword::UNPIVOT,
1210 Keyword::TOP,
1211 Keyword::LATERAL,
1212 Keyword::VIEW,
1213 Keyword::LIMIT,
1214 Keyword::OFFSET,
1215 Keyword::FETCH,
1216 Keyword::UNION,
1217 Keyword::EXCEPT,
1218 Keyword::INTERSECT,
1219 Keyword::MINUS,
1220 Keyword::ON,
1222 Keyword::JOIN,
1223 Keyword::INNER,
1224 Keyword::CROSS,
1225 Keyword::FULL,
1226 Keyword::LEFT,
1227 Keyword::RIGHT,
1228 Keyword::NATURAL,
1229 Keyword::USING,
1230 Keyword::CLUSTER,
1231 Keyword::DISTRIBUTE,
1232 Keyword::GLOBAL,
1233 Keyword::ANTI,
1234 Keyword::SEMI,
1235 Keyword::RETURNING,
1236 Keyword::OUTPUT,
1237 Keyword::ASOF,
1238 Keyword::MATCH_CONDITION,
1239 Keyword::OUTER,
1241 Keyword::SET,
1242 Keyword::QUALIFY,
1243 Keyword::WINDOW,
1244 Keyword::END,
1245 Keyword::FOR,
1246 Keyword::PARTITION,
1248 Keyword::ARRAY,
1250 Keyword::PREWHERE,
1252 Keyword::SETTINGS,
1253 Keyword::FORMAT,
1254 Keyword::START,
1256 Keyword::CONNECT,
1257 Keyword::MATCH_RECOGNIZE,
1259 Keyword::SAMPLE,
1261 Keyword::TABLESAMPLE,
1262 Keyword::FROM,
1263 Keyword::OPEN,
1264];
1265
1266pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1269 Keyword::WITH,
1271 Keyword::EXPLAIN,
1272 Keyword::ANALYZE,
1273 Keyword::SELECT,
1274 Keyword::WHERE,
1275 Keyword::GROUP,
1276 Keyword::SORT,
1277 Keyword::HAVING,
1278 Keyword::ORDER,
1279 Keyword::TOP,
1280 Keyword::LATERAL,
1281 Keyword::VIEW,
1282 Keyword::LIMIT,
1283 Keyword::OFFSET,
1284 Keyword::FETCH,
1285 Keyword::UNION,
1286 Keyword::EXCEPT,
1287 Keyword::EXCLUDE,
1288 Keyword::INTERSECT,
1289 Keyword::MINUS,
1290 Keyword::CLUSTER,
1291 Keyword::DISTRIBUTE,
1292 Keyword::RETURNING,
1293 Keyword::VALUES,
1294 Keyword::FROM,
1296 Keyword::INTO,
1297 Keyword::END,
1298];
1299
1300pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1304 Keyword::INTO,
1305 Keyword::LIMIT,
1306 Keyword::HAVING,
1307 Keyword::WHERE,
1308];
1309
1310pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1314 Keyword::EXISTS,
1315 Keyword::INTERVAL,
1316 Keyword::STRUCT,
1317 Keyword::TRIM,
1318];