1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
use super::Syntax;
use std::collections::HashSet;

impl Syntax {
    #[must_use]
    pub fn sql() -> Self {
        Syntax {
            language: "SQL",
            case_sensitive: false,
            comment: "--",
            comment_multiline: ["/*", "*/"],
            keywords: HashSet::from([
                "ADD",
                "ALL",
                "ALTER",
                "AND",
                "ANY",
                "AS",
                "ASC",
                "BACKUP",
                "BETWEEN",
                "CASE",
                "CHECK",
                "COLUMN",
                "CONSTRAINT",
                "CREATE",
                "INDEX",
                "OR",
                "REPLACE",
                "VIEW",
                "PROCEDURE",
                "UNIQUE",
                "DEFAULT",
                "DELETE",
                "DESC",
                "DISTINCT",
                "DROP",
                "PRIMARY",
                "FOREIGN",
                "EXEC",
                "EXISTS",
                "FROM",
                "FULL",
                "OUTER",
                "JOIN",
                "GROUP",
                "BY",
                "HAVING",
                "IN",
                "INNER",
                "INSERT",
                "INTO",
                "SELECT",
                "IS",
                "KEY",
                "NOT",
                "NULL",
                "LEFT",
                "LIKE",
                "LIMIT",
                "ORDER",
                "A",
                "RIGHT",
                "ROWNUM",
                "TOP",
                "TRUNCATE",
                "UNION",
                "UPDATE",
                "VALUES",
                "WHERE",
                "WITH",
            ]),
            types: HashSet::from([
                "BOOL",
                "INTEGER",
                "SMALLINT",
                "BIGINT",
                "REAL",
                "DOUBLEPRECISION",
                "VARCHAR",
                "NUMBER",
                "CHAR",
                "TEXT",
                "DATE",
                "TIMESTAMP",
                "UUID",
                "BYTEA",
                "LOB",
                "BLOB",
                "CLOB",
                "BIGINT",
                "NUMERIC",
                "BIT",
                "SMALLINT",
                "DECIMAL",
                "SMALLMONEY",
                "INT",
                "INT4",
                "INT8",
                "INT16",
                "INT32",
                "INT64",
                "INT128",
                "TINYINT",
                "MONEY",
                "FLOAT",
                "REAL",
                "DATE",
                "DATETIMEOFFSET",
                "DATETIME2",
                "SMALLDATETIME",
                "DATETIME",
                "TIME",
                "CHAR",
                "VARCHAR",
                "VARCHAR2",
                "TEXT",
                "NCHAR",
                "NVARCHAR",
                "NTEXT",
                "BINARY",
                "VARBINARY",
                "IMAGE",
                "ROWVERSION",
                "HIERARCHYID",
                "UNIQUEIDENTIFIER",
                "SQL_VARIANT",
                "XML",
                "XMLTYPE",
                "TABLE",
                "SET",
                "DATABASE",
            ]),
            special: HashSet::from(["PUBLIC"]),
        }
    }
}