1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.modeshape.sequencer.ddl.dialect.mysql;
25
26 import java.util.Arrays;
27 import java.util.List;
28
29 import org.modeshape.sequencer.ddl.DdlConstants;
30
31
32
33
34
35 public interface MySqlDdlConstants extends DdlConstants {
36 public static final String[] CUSTOM_KEYWORDS = {
37 "DATABASE", "DEFINER", "EVENT", "LOGFILE", "TABLESPACE", "TRIGGER",
38 "TINYINT", "MEDIUMINT", "BIGINT", "FIXED", "BOOL", "BOOLEAN", "BINARY", "VARBINARY", "TINYBLOB",
39 "TINYTEXT", "MEDIUMBLOB", "MEDIUMTEXT", "LONGBLOB", "LONGTEXT", "TEXT", "ENUM", "SET", "DATETIME", "YEAR", "BLOB", "RENAME",
40 "ALGORITHM", "SECURITY"
41 };
42
43 static final String[] STMT_ALTER_ALGORITHM = {"ALTER", "ALGORITHM"};
44 static final String[] STMT_ALTER_DATABASE = {"ALTER", "DATABASE"};
45 static final String[] STMT_ALTER_DEFINER = {"ALTER", "DEFINER"};
46 static final String[] STMT_ALTER_EVENT = {"ALTER", "EVENT"};
47 static final String[] STMT_ALTER_FUNCTION = {"ALTER", "FUNCTION"};
48 static final String[] STMT_ALTER_LOGFILE_GROUP = {"ALTER", "LOGFILE", "GROUP"};
49 static final String[] STMT_ALTER_PROCEDURE = {"ALTER", "PROCEDURE"};
50 static final String[] STMT_ALTER_SCHEMA = {"ALTER", "SCHEMA"};
51 static final String[] STMT_ALTER_SERVER = {"ALTER", "SERVER"};
52 static final String[] STMT_ALTER_SQL_SECURITY = {"ALTER", "SQL", "SECURITY"};
53 static final String[] STMT_ALTER_TABLESPACE = {"ALTER", "TABLESPACE"};
54
55
56 static final String[] STMT_ALTER_IGNORE_TABLE = {"ALTER", "IGNORE", "TABLE"};
57 static final String[] STMT_ALTER_ONLINE_TABLE = {"ALTER", "ONLINE", "TABLE"};
58 static final String[] STMT_ALTER_OFFLINE_TABLE = {"ALTER", "OFFLINE", "TABLE"};
59 static final String[] STMT_ALTER_ONLINE_IGNORE_TABLE = {"ALTER", "ONLINE", "IGNORE", "TABLE"};
60 static final String[] STMT_ALTER_OFFLINE_IGNORE_TABLE = {"ALTER", "OFFLINE", "IGNORE", "TABLE"};
61
62 interface MySqlStatementStartPhrases {
63 static final String[][] ALTER_PHRASES = {
64 STMT_ALTER_DATABASE,
65 STMT_ALTER_DEFINER,
66 STMT_ALTER_EVENT,
67 STMT_ALTER_FUNCTION,
68 STMT_ALTER_LOGFILE_GROUP,
69 STMT_ALTER_PROCEDURE,
70 STMT_ALTER_SCHEMA,
71 STMT_ALTER_SERVER,
72 STMT_ALTER_TABLESPACE,
73 STMT_ALTER_IGNORE_TABLE,
74 STMT_ALTER_ONLINE_TABLE,
75 STMT_ALTER_OFFLINE_TABLE,
76 STMT_ALTER_ONLINE_IGNORE_TABLE,
77 STMT_ALTER_OFFLINE_IGNORE_TABLE
78 };
79
80 static final String[] STMT_CREATE_DATABASE = {"CREATE", "DATABASE"};
81 static final String[] STMT_CREATE_DEFINER = {"CREATE", "DEFINER"};
82 static final String[] STMT_CREATE_EVENT = {"CREATE", "EVENT"};
83 static final String[] STMT_CREATE_FUNCTION = {"CREATE", "FUNCTION"};
84 static final String[] STMT_CREATE_INDEX = {"CREATE", "INDEX"};
85 static final String[] STMT_CREATE_LOGFILE_GROUP = {"CREATE", "LOGFILE", "GROUP"};
86 static final String[] STMT_CREATE_UNIQUE_INDEX = {"CREATE", "UNIQUE", "INDEX"};
87 static final String[] STMT_CREATE_PROCEDURE = {"CREATE", "PROCEDURE"};
88 static final String[] STMT_CREATE_SERVER = {"CREATE", "SERVER"};
89 static final String[] STMT_CREATE_TABLESPACE = {"CREATE", "TABLESPACE"};
90 static final String[] STMT_CREATE_TRIGGER = {"CREATE", "TRIGGER"};
91
92 static final String[][] CREATE_PHRASES = {
93 STMT_CREATE_DATABASE,
94 STMT_CREATE_DEFINER,
95 STMT_CREATE_EVENT,
96 STMT_CREATE_FUNCTION,
97 STMT_CREATE_INDEX,
98 STMT_CREATE_LOGFILE_GROUP,
99 STMT_CREATE_UNIQUE_INDEX,
100 STMT_CREATE_PROCEDURE,
101 STMT_CREATE_SERVER,
102 STMT_CREATE_TABLESPACE,
103 STMT_CREATE_TRIGGER
104 };
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 static final String[] STMT_DROP_DATABASE = {"DROP", "DATABASE"};
128 static final String[] STMT_DROP_EVENT = {"DROP", "EVENT"};
129 static final String[] STMT_DROP_FUNCTION = {"DROP", "FUNCTION"};
130 static final String[] STMT_DROP_INDEX = {"DROP", "INDEX"};
131 static final String[] STMT_DROP_ONLINE_INDEX = {"DROP", "ONLINE", "INDEX"};
132 static final String[] STMT_DROP_OFFLINE_INDEX = {"DROP", "OFFLINE", "INDEX"};
133 static final String[] STMT_DROP_LOGFILE_GROUP = {"DROP", "LOGFILE", "GROUP"};
134 static final String[] STMT_DROP_PROCEDURE = {"DROP", "PROCEDURE"};
135 static final String[] STMT_DROP_SERVER = {"DROP", "SERVER"};
136 static final String[] STMT_DROP_TABLESPACE = {"DROP", "TABLESPACE"};
137 static final String[] STMT_DROP_TRIGGER = {"DROP", "TRIGGER"};
138
139 static final String[][] DROP_PHRASES = {
140 STMT_DROP_DATABASE,
141 STMT_DROP_EVENT,
142 STMT_DROP_FUNCTION,
143 STMT_DROP_INDEX,
144 STMT_DROP_ONLINE_INDEX,
145 STMT_DROP_OFFLINE_INDEX,
146 STMT_DROP_LOGFILE_GROUP,
147 STMT_DROP_PROCEDURE,
148 STMT_DROP_SERVER,
149 STMT_DROP_TABLESPACE,
150 STMT_DROP_TRIGGER
151 };
152 static final String[][] SET_PHRASES = {
153
154 };
155
156
157 static final String[] STMT_RENAME_DATABASE = {"RENAME", "DATABASE"};
158 static final String[] STMT_RENAME_SCHEMA = {"RENAME", "SCHEMA"};
159
160 static final String[] STMT_RENAME_TABLE = {"RENAME", "TABLE"};
161
162 static final String[][] MISC_PHRASES = {
163 STMT_RENAME_DATABASE, STMT_RENAME_SCHEMA, STMT_RENAME_TABLE
164 };
165 }
166
167 static final String[] DTYPE_NATIONAL_VARCHAR = {"NATIONAL", "VARCHAR"};
168
169 static final String[] DTYPE_TINYINT = {"TINYINT"};
170 static final String[] DTYPE_MEDIUMINT = {"MEDIUMINT"};
171 static final String[] DTYPE_BIGINT = {"BIGINT"};
172 static final String[] DTYPE_FIXED = {"FIXED"};
173 static final String[] DTYPE_BOOL = {"BOOL"};
174 static final String[] DTYPE_BOOLEAN = {"BOOLEAN"};
175
176 static final String[] DTYPE_DOUBLE = {"DOUBLE"};
177
178 static final String[] DTYPE_BINARY = {"BINARY"};
179 static final String[] DTYPE_VARBINARY = {"VARBINARY"};
180 static final String[] DTYPE_BLOB = {"BLOB"};
181 static final String[] DTYPE_TINYBLOB = {"TINYBLOB"};
182 static final String[] DTYPE_TINYTEXT = {"TINYTEXT"};
183 static final String[] DTYPE_TEXT = {"TEXT"};
184 static final String[] DTYPE_MEDIUMBLOB = {"MEDIUMBLOB"};
185 static final String[] DTYPE_MEDIUMTEXT = {"MEDIUMTEXT"};
186 static final String[] DTYPE_LONGBLOB = {"LONGBLOB"};
187 static final String[] DTYPE_LONGTEXT = {"LONGTEXT"};
188 static final String[] DTYPE_ENUM = {"ENUM"};
189 static final String[] DTYPE_SET = {"SET"};
190
191 static final String[] DTYPE_DATETIME = {"DATETIME"};
192 static final String[] DTYPE_YEAR = {"YEAR"};
193
194 interface MySqlDataTypes {
195 static final List<String[]> CUSTOM_DATATYPE_START_PHRASES =
196 Arrays.asList(new String[][] {
197 DTYPE_BIGINT, DTYPE_BOOL, DTYPE_BOOLEAN, DTYPE_FIXED, DTYPE_DOUBLE, DTYPE_MEDIUMINT, DTYPE_TINYINT,
198 DTYPE_NATIONAL_VARCHAR, DTYPE_BINARY, DTYPE_VARBINARY, DTYPE_TINYBLOB, DTYPE_TINYTEXT, DTYPE_TEXT,
199 DTYPE_MEDIUMBLOB, DTYPE_MEDIUMTEXT, DTYPE_LONGBLOB, DTYPE_LONGTEXT, DTYPE_ENUM, DTYPE_SET,
200 DTYPE_DATETIME, DTYPE_YEAR, DTYPE_BLOB
201 });
202
203 static final List<String> CUSTOM_DATATYPE_START_WORDS =
204 Arrays.asList(new String[] {
205 "TINYINT", "MEDIUMINT", "BIGINT", "FIXED", "BOOL", "BOOLEAN", "BINARY", "VARBINARY", "TINYBLOB",
206 "TINYTEXT", "MEDIUMBLOB", "MEDIUMTEXT", "LONGBLOB", "LONGTEXT", "TEXT", "ENUM", "SET", "DATETIME", "YEAR", "BLOB"
207 });
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257 }
258 }