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