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 POLICY,
733 POLYGON,
734 POOL,
735 PORTION,
736 POSITION,
737 POSITION_REGEX,
738 POWER,
739 PRAGMA,
740 PRECEDES,
741 PRECEDING,
742 PRECISION,
743 PREPARE,
744 PRESERVE,
745 PREWHERE,
746 PRIMARY,
747 PRINT,
748 PRIOR,
749 PRIVILEGES,
750 PROCEDURE,
751 PROFILE,
752 PROGRAM,
753 PROJECTION,
754 PUBLIC,
755 PURCHASE,
756 PURGE,
757 QUALIFY,
758 QUARTER,
759 QUERY,
760 QUOTE,
761 RAISE,
762 RAISERROR,
763 RANGE,
764 RANK,
765 RAW,
766 RCFILE,
767 READ,
768 READS,
769 READ_ONLY,
770 REAL,
771 RECLUSTER,
772 RECURSIVE,
773 REF,
774 REFERENCES,
775 REFERENCING,
776 REFRESH_MODE,
777 REGCLASS,
778 REGEXP,
779 REGION,
780 REGR_AVGX,
781 REGR_AVGY,
782 REGR_COUNT,
783 REGR_INTERCEPT,
784 REGR_R2,
785 REGR_SLOPE,
786 REGR_SXX,
787 REGR_SXY,
788 REGR_SYY,
789 REINDEX,
790 RELATIVE,
791 RELAY,
792 RELEASE,
793 RELEASES,
794 REMOTE,
795 REMOVE,
796 RENAME,
797 REORG,
798 REPAIR,
799 REPEAT,
800 REPEATABLE,
801 REPLACE,
802 REPLACE_INVALID_CHARACTERS,
803 REPLICA,
804 REPLICATE,
805 REPLICATION,
806 REQUIRE,
807 RESET,
808 RESOLVE,
809 RESOURCE,
810 RESPECT,
811 RESTART,
812 RESTRICT,
813 RESTRICTED,
814 RESTRICTIONS,
815 RESTRICTIVE,
816 RESULT,
817 RESULTSET,
818 RESUME,
819 RETAIN,
820 RETURN,
821 RETURNING,
822 RETURNS,
823 REVOKE,
824 RIGHT,
825 RLIKE,
826 RM,
827 ROLE,
828 ROLES,
829 ROLLBACK,
830 ROLLUP,
831 ROOT,
832 ROW,
833 ROWGROUPSIZE,
834 ROWID,
835 ROWS,
836 ROW_FORMAT,
837 ROW_NUMBER,
838 RULE,
839 RUN,
840 SAFE,
841 SAFE_CAST,
842 SAMPLE,
843 SAVEPOINT,
844 SCHEMA,
845 SCHEMAS,
846 SCOPE,
847 SCROLL,
848 SEARCH,
849 SECOND,
850 SECONDARY,
851 SECONDARY_ENGINE_ATTRIBUTE,
852 SECONDS,
853 SECRET,
854 SECURE,
855 SECURITY,
856 SEED,
857 SELECT,
858 SEMANTIC_VIEW,
859 SEMI,
860 SENSITIVE,
861 SEPARATOR,
862 SEQUENCE,
863 SEQUENCEFILE,
864 SEQUENCES,
865 SERDE,
866 SERDEPROPERTIES,
867 SERIALIZABLE,
868 SERVER,
869 SERVICE,
870 SESSION,
871 SESSION_USER,
872 SET,
873 SETERROR,
874 SETS,
875 SETTINGS,
876 SHARE,
877 SHARED,
878 SHARING,
879 SHOW,
880 SIGNED,
881 SIMILAR,
882 SKIP,
883 SLOW,
884 SMALLINT,
885 SNAPSHOT,
886 SOME,
887 SORT,
888 SORTED,
889 SOURCE,
890 SPATIAL,
891 SPECIFIC,
892 SPECIFICTYPE,
893 SPGIST,
894 SQL,
895 SQLEXCEPTION,
896 SQLSTATE,
897 SQLWARNING,
898 SQRT,
899 SRID,
900 STABLE,
901 STAGE,
902 START,
903 STARTS,
904 STATEMENT,
905 STATIC,
906 STATISTICS,
907 STATS_AUTO_RECALC,
908 STATS_PERSISTENT,
909 STATS_SAMPLE_PAGES,
910 STATUS,
911 STDDEV_POP,
912 STDDEV_SAMP,
913 STDIN,
914 STDOUT,
915 STEP,
916 STORAGE,
917 STORAGE_INTEGRATION,
918 STORAGE_SERIALIZATION_POLICY,
919 STORED,
920 STRAIGHT_JOIN,
921 STREAM,
922 STRICT,
923 STRING,
924 STRUCT,
925 SUBMULTISET,
926 SUBSTR,
927 SUBSTRING,
928 SUBSTRING_REGEX,
929 SUCCEEDS,
930 SUM,
931 SUPER,
932 SUPERUSER,
933 SUPPORT,
934 SUSPEND,
935 SWAP,
936 SYMMETRIC,
937 SYNC,
938 SYSTEM,
939 SYSTEM_TIME,
940 SYSTEM_USER,
941 TABLE,
942 TABLES,
943 TABLESAMPLE,
944 TABLESPACE,
945 TAG,
946 TARGET,
947 TARGET_LAG,
948 TASK,
949 TBLPROPERTIES,
950 TEMP,
951 TEMPORARY,
952 TEMPTABLE,
953 TERMINATED,
954 TERSE,
955 TEXT,
956 TEXTFILE,
957 THEN,
958 TIES,
959 TIME,
960 TIMEFORMAT,
961 TIMESTAMP,
962 TIMESTAMPTZ,
963 TIMESTAMP_NTZ,
964 TIMETZ,
965 TIMEZONE,
966 TIMEZONE_ABBR,
967 TIMEZONE_HOUR,
968 TIMEZONE_MINUTE,
969 TIMEZONE_REGION,
970 TINYBLOB,
971 TINYINT,
972 TINYTEXT,
973 TO,
974 TOP,
975 TOTALS,
976 TRACE,
977 TRAILING,
978 TRANSACTION,
979 TRANSIENT,
980 TRANSLATE,
981 TRANSLATE_REGEX,
982 TRANSLATION,
983 TREAT,
984 TRIGGER,
985 TRIM,
986 TRIM_ARRAY,
987 TRUE,
988 TRUNCATE,
989 TRUNCATECOLUMNS,
990 TRY,
991 TRY_CAST,
992 TRY_CONVERT,
993 TSQUERY,
994 TSVECTOR,
995 TUPLE,
996 TYPE,
997 UBIGINT,
998 UESCAPE,
999 UHUGEINT,
1000 UINT128,
1001 UINT16,
1002 UINT256,
1003 UINT32,
1004 UINT64,
1005 UINT8,
1006 UNBOUNDED,
1007 UNCACHE,
1008 UNCOMMITTED,
1009 UNDEFINED,
1010 UNFREEZE,
1011 UNION,
1012 UNIQUE,
1013 UNKNOWN,
1014 UNLISTEN,
1015 UNLOAD,
1016 UNLOCK,
1017 UNLOGGED,
1018 UNMATCHED,
1019 UNNEST,
1020 UNPIVOT,
1021 UNSAFE,
1022 UNSET,
1023 UNSIGNED,
1024 UNTIL,
1025 UPDATE,
1026 UPPER,
1027 URL,
1028 USAGE,
1029 USE,
1030 USER,
1031 USER_RESOURCES,
1032 USING,
1033 USMALLINT,
1034 UTINYINT,
1035 UUID,
1036 VACUUM,
1037 VALID,
1038 VALIDATE,
1039 VALIDATION_MODE,
1040 VALUE,
1041 VALUES,
1042 VALUE_OF,
1043 VARBINARY,
1044 VARBIT,
1045 VARCHAR,
1046 VARIABLES,
1047 VARYING,
1048 VAR_POP,
1049 VAR_SAMP,
1050 VERBOSE,
1051 VERSION,
1052 VERSIONING,
1053 VERSIONS,
1054 VIEW,
1055 VIEWS,
1056 VIRTUAL,
1057 VOLATILE,
1058 VOLUME,
1059 WAREHOUSE,
1060 WAREHOUSES,
1061 WEEK,
1062 WEEKS,
1063 WHEN,
1064 WHENEVER,
1065 WHERE,
1066 WHILE,
1067 WIDTH_BUCKET,
1068 WINDOW,
1069 WITH,
1070 WITHIN,
1071 WITHOUT,
1072 WITHOUT_ARRAY_WRAPPER,
1073 WORK,
1074 WRAPPER,
1075 WRITE,
1076 XML,
1077 XMLNAMESPACES,
1078 XMLTABLE,
1079 XOR,
1080 YEAR,
1081 YEARS,
1082 ZONE,
1083 ZORDER,
1084 ZSTD
1085);
1086
1087pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
1090 Keyword::WITH,
1092 Keyword::EXPLAIN,
1093 Keyword::ANALYZE,
1094 Keyword::SELECT,
1095 Keyword::WHERE,
1096 Keyword::GROUP,
1097 Keyword::SORT,
1098 Keyword::HAVING,
1099 Keyword::ORDER,
1100 Keyword::PIVOT,
1101 Keyword::UNPIVOT,
1102 Keyword::TOP,
1103 Keyword::LATERAL,
1104 Keyword::VIEW,
1105 Keyword::LIMIT,
1106 Keyword::OFFSET,
1107 Keyword::FETCH,
1108 Keyword::UNION,
1109 Keyword::EXCEPT,
1110 Keyword::INTERSECT,
1111 Keyword::MINUS,
1112 Keyword::ON,
1114 Keyword::JOIN,
1115 Keyword::INNER,
1116 Keyword::CROSS,
1117 Keyword::FULL,
1118 Keyword::LEFT,
1119 Keyword::RIGHT,
1120 Keyword::NATURAL,
1121 Keyword::USING,
1122 Keyword::CLUSTER,
1123 Keyword::DISTRIBUTE,
1124 Keyword::GLOBAL,
1125 Keyword::ANTI,
1126 Keyword::SEMI,
1127 Keyword::RETURNING,
1128 Keyword::ASOF,
1129 Keyword::MATCH_CONDITION,
1130 Keyword::OUTER,
1132 Keyword::SET,
1133 Keyword::QUALIFY,
1134 Keyword::WINDOW,
1135 Keyword::END,
1136 Keyword::FOR,
1137 Keyword::PARTITION,
1139 Keyword::PREWHERE,
1141 Keyword::SETTINGS,
1142 Keyword::FORMAT,
1143 Keyword::START,
1145 Keyword::CONNECT,
1146 Keyword::MATCH_RECOGNIZE,
1148 Keyword::SAMPLE,
1150 Keyword::TABLESAMPLE,
1151 Keyword::FROM,
1152 Keyword::OPEN,
1153];
1154
1155pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
1158 Keyword::WITH,
1160 Keyword::EXPLAIN,
1161 Keyword::ANALYZE,
1162 Keyword::SELECT,
1163 Keyword::WHERE,
1164 Keyword::GROUP,
1165 Keyword::SORT,
1166 Keyword::HAVING,
1167 Keyword::ORDER,
1168 Keyword::TOP,
1169 Keyword::LATERAL,
1170 Keyword::VIEW,
1171 Keyword::LIMIT,
1172 Keyword::OFFSET,
1173 Keyword::FETCH,
1174 Keyword::UNION,
1175 Keyword::EXCEPT,
1176 Keyword::EXCLUDE,
1177 Keyword::INTERSECT,
1178 Keyword::MINUS,
1179 Keyword::CLUSTER,
1180 Keyword::DISTRIBUTE,
1181 Keyword::RETURNING,
1182 Keyword::FROM,
1184 Keyword::INTO,
1185 Keyword::END,
1186];
1187
1188pub const RESERVED_FOR_TABLE_FACTOR: &[Keyword] = &[
1192 Keyword::INTO,
1193 Keyword::LIMIT,
1194 Keyword::HAVING,
1195 Keyword::WHERE,
1196];
1197
1198pub const RESERVED_FOR_IDENTIFIER: &[Keyword] = &[
1202 Keyword::EXISTS,
1203 Keyword::INTERVAL,
1204 Keyword::STRUCT,
1205 Keyword::TRIM,
1206];