~drizzle-trunk/drizzle/development

390.1.2 by Monty Taylor
Fixed copyright headers in drizzled/
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2008 Sun Microsystems
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; version 2 of the License.
9
 *
10
 *  This program is distributed in the hope that it will be useful,
11
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 *  GNU General Public License for more details.
14
 *
15
 *  You should have received a copy of the GNU General Public License
16
 *  along with this program; if not, write to the Free Software
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 */
1 by brian
clean slate
19
20
21
/* This file includes all reserved words and functions */
22
584.1.15 by Monty Taylor
The mega-patch from hell. Renamed sql_class to session (since that's what it is) and removed it and field and table from common_includes.
23
#include <drizzled/lex_symbol.h>
1 by brian
clean slate
24
25
SYM_GROUP sym_group_common= {"", ""};
26
27
/* We don't want to include sql_yacc.h into gen_lex_hash */
28
#ifdef NO_YACC_SYMBOLS
29
#define SYM_OR_NULL(A) 0
30
#else
31
#define SYM_OR_NULL(A) A
32
#endif
33
34
#define SYM(A) SYM_OR_NULL(A),0,&sym_group_common
35
36
/*
37
  Symbols are broken into separated arrays to allow field names with
38
  same name as functions.
39
  These are kept sorted for human lookup (the symbols are hashed).
40
41
  NOTE! The symbol tables should be the same regardless of what features
42
  are compiled into the server. Don't add ifdef'ed symbols to the
43
  lists
44
*/
45
46
static SYMBOL symbols[] = {
47
  { "<",		SYM(LT)},
48
  { "<=",		SYM(LE)},
49
  { "<>",		SYM(NE)},
50
  { "!=",		SYM(NE)},
51
  { "=",		SYM(EQ)},
52
  { ">",		SYM(GT_SYM)},
53
  { ">=",		SYM(GE)},
54
  { "<=>",		SYM(EQUAL_SYM)},
55
  { "ACCESSIBLE",	SYM(ACCESSIBLE_SYM)},
56
  { "ACTION",		SYM(ACTION)},
57
  { "ADD",		SYM(ADD)},
58
  { "AFTER",		SYM(AFTER_SYM)},
59
  { "AGGREGATE",	SYM(AGGREGATE_SYM)},
60
  { "ALL",		SYM(ALL)},
61
  { "ALGORITHM",	SYM(ALGORITHM_SYM)},
62
  { "ALTER",		SYM(ALTER)},
63
  { "ANALYZE",		SYM(ANALYZE_SYM)},
64
  { "AND",		SYM(AND_SYM)},
65
  { "ANY",              SYM(ANY_SYM)},
66
  { "AS",		SYM(AS)},
67
  { "ASC",		SYM(ASC)},
68
  { "ASCII",		SYM(ASCII_SYM)},
69
  { "ASENSITIVE",       SYM(ASENSITIVE_SYM)},
70
  { "AT",		SYM(AT_SYM)},
71
  { "AUTHORS",	        SYM(AUTHORS_SYM)},
72
  { "AUTO_INCREMENT",	SYM(AUTO_INC)},
73
  { "AUTOEXTEND_SIZE",	SYM(AUTOEXTEND_SIZE_SYM)},
74
  { "AVG",		SYM(AVG_SYM)},
75
  { "AVG_ROW_LENGTH",	SYM(AVG_ROW_LENGTH)},
76
  { "BEFORE",	        SYM(BEFORE_SYM)},
77
  { "BEGIN",	        SYM(BEGIN_SYM)},
78
  { "BETWEEN",		SYM(BETWEEN_SYM)},
79
  { "BIGINT",		SYM(BIGINT)},
80
  { "BINARY",		SYM(BINARY)},
81
  { "BINLOG",		SYM(BINLOG_SYM)},
82
  { "BIT",		SYM(BIT_SYM)},
83
  { "BLOB",		SYM(BLOB_SYM)},
84
  { "BLOCK",  SYM(BLOCK_SYM)},
244.1.1 by Harrison Fisk
Port Ebay/Google memory storage engine variable width columns.
85
  { "BLOCK_SIZE", SYM(BLOCK_SIZE_SYM)},
1 by brian
clean slate
86
  { "BOOL",		SYM(BOOL_SYM)},
87
  { "BOOLEAN",		SYM(BOOLEAN_SYM)},
88
  { "BOTH",		SYM(BOTH)},
89
  { "BTREE",		SYM(BTREE_SYM)},
90
  { "BY",		SYM(BY)},
91
  { "BYTE",		SYM(BYTE_SYM)},
92
  { "CACHE",		SYM(CACHE_SYM)},
93
  { "CALL",             SYM(CALL_SYM)},
94
  { "CASCADE",		SYM(CASCADE)},
95
  { "CASCADED",         SYM(CASCADED)},
96
  { "CASE",		SYM(CASE_SYM)},
97
  { "CHAIN",		SYM(CHAIN_SYM)},
98
  { "CHANGE",		SYM(CHANGE)},
99
  { "CHANGED",		SYM(CHANGED)},
100
  { "CHAR",		SYM(CHAR_SYM)},
101
  { "CHARACTER",	SYM(CHAR_SYM)},
102
  { "CHARSET",		SYM(CHARSET)},
103
  { "CHECK",		SYM(CHECK_SYM)},
104
  { "CHECKSUM",		SYM(CHECKSUM_SYM)},
105
  { "CLOSE",		SYM(CLOSE_SYM)},
106
  { "COALESCE",		SYM(COALESCE)},
107
  { "COLLATE",		SYM(COLLATE_SYM)},
108
  { "COLLATION",	SYM(COLLATION_SYM)},
109
  { "COLUMN",		SYM(COLUMN_SYM)},
110
  { "COLUMNS",		SYM(COLUMNS)},
111
  { "COMMENT",		SYM(COMMENT_SYM)},
112
  { "COMMIT",		SYM(COMMIT_SYM)},
113
  { "COMMITTED",	SYM(COMMITTED_SYM)},
114
  { "COMPACT",		SYM(COMPACT_SYM)},
115
  { "COMPLETION",	SYM(COMPLETION_SYM)},
116
  { "COMPRESSED",	SYM(COMPRESSED_SYM)},
117
  { "CONCURRENT",	SYM(CONCURRENT)},
118
  { "CONDITION",        SYM(CONDITION_SYM)},
119
  { "CONNECTION",       SYM(CONNECTION_SYM)},
120
  { "CONSISTENT",	SYM(CONSISTENT_SYM)},
121
  { "CONSTRAINT",	SYM(CONSTRAINT)},
122
  { "CONTAINS",         SYM(CONTAINS_SYM)},
123
  { "CONTEXT",    SYM(CONTEXT_SYM)},
124
  { "CONTINUE",         SYM(CONTINUE_SYM)},
125
  { "CONVERT",		SYM(CONVERT_SYM)},
126
  { "CREATE",		SYM(CREATE)},
127
  { "CROSS",		SYM(CROSS)},
128
  { "CUBE",		SYM(CUBE_SYM)},
129
  { "CURRENT_DATE",	SYM(CURDATE)},
130
  { "CURRENT_TIME",	SYM(CURTIME)},
131
  { "CURRENT_TIMESTAMP", SYM(NOW_SYM)},
132
  { "CURRENT_USER",	SYM(CURRENT_USER)},
133
  { "CURSOR",           SYM(CURSOR_SYM)},
134
  { "DATA",		SYM(DATA_SYM)},
135
  { "DATABASE",		SYM(DATABASE)},
136
  { "DATABASES",	SYM(DATABASES)},
137
  { "DATAFILE", 	SYM(DATAFILE_SYM)},
138
  { "DATE",		SYM(DATE_SYM)},
139
  { "DATETIME",		SYM(DATETIME)},
140
  { "DAY",		SYM(DAY_SYM)},
141
  { "DAY_HOUR",		SYM(DAY_HOUR_SYM)},
142
  { "DAY_MICROSECOND",	SYM(DAY_MICROSECOND_SYM)},
143
  { "DAY_MINUTE",	SYM(DAY_MINUTE_SYM)},
144
  { "DAY_SECOND",	SYM(DAY_SECOND_SYM)},
660.1.3 by Eric Herman
removed trailing whitespace with simple script:
145
  { "DEALLOCATE",       SYM(DEALLOCATE_SYM)},
1 by brian
clean slate
146
  { "DEC",		SYM(DECIMAL_SYM)},
147
  { "DECIMAL",		SYM(DECIMAL_SYM)},
148
  { "DECLARE",          SYM(DECLARE_SYM)},
149
  { "DEFAULT",		SYM(DEFAULT)},
150
  { "DELAYED",		SYM(DELAYED_SYM)},
151
  { "DELAY_KEY_WRITE",	SYM(DELAY_KEY_WRITE_SYM)},
152
  { "DELETE",		SYM(DELETE_SYM)},
153
  { "DESC",		SYM(DESC)},
154
  { "DESCRIBE",		SYM(DESCRIBE)},
155
  { "DETERMINISTIC",    SYM(DETERMINISTIC_SYM)},
156
  { "DIRECTORY",	SYM(DIRECTORY_SYM)},
157
  { "DISABLE",		SYM(DISABLE_SYM)},
158
  { "DISCARD",		SYM(DISCARD)},
159
  { "DISTINCT",		SYM(DISTINCT)},
160
  { "DISTINCTROW",	SYM(DISTINCT)},	/* Access likes this */
161
  { "DIV",		SYM(DIV_SYM)},
162
  { "DOUBLE",		SYM(DOUBLE_SYM)},
163
  { "DROP",		SYM(DROP)},
164
  { "DUMPFILE",		SYM(DUMPFILE)},
165
  { "DUPLICATE",	SYM(DUPLICATE_SYM)},
166
  { "DYNAMIC",		SYM(DYNAMIC_SYM)},
167
  { "EACH",             SYM(EACH_SYM)},
168
  { "ELSE",             SYM(ELSE)},
169
  { "ELSEIF",           SYM(ELSEIF_SYM)},
170
  { "ENABLE",		SYM(ENABLE_SYM)},
171
  { "ENCLOSED",		SYM(ENCLOSED)},
172
  { "END",		SYM(END)},
173
  { "ENDS",		SYM(ENDS_SYM)},
174
  { "ENGINE",		SYM(ENGINE_SYM)},
175
  { "ENUM",		SYM(ENUM)},
176
  { "ERRORS",		SYM(ERRORS)},
177
  { "ESCAPE",		SYM(ESCAPE_SYM)},
178
  { "ESCAPED",		SYM(ESCAPED)},
179
  { "EXCLUSIVE",        SYM(EXCLUSIVE_SYM)},
180
  { "EXISTS",		SYM(EXISTS)},
181
  { "EXIT",             SYM(EXIT_SYM)},
182
  { "EXPLAIN",		SYM(DESCRIBE)},
183
  { "EXTENDED",		SYM(EXTENDED_SYM)},
184
  { "EXTENT_SIZE",	SYM(EXTENT_SIZE_SYM)},
185
  { "FALSE",		SYM(FALSE_SYM)},
186
  { "FAST",		SYM(FAST_SYM)},
187
  { "FAULTS",  SYM(FAULTS_SYM)},
188
  { "FETCH",            SYM(FETCH_SYM)},
189
  { "COLUMN_FORMAT",	SYM(COLUMN_FORMAT_SYM)},
190
  { "FIELDS",		SYM(COLUMNS)},
191
  { "FILE",		SYM(FILE_SYM)},
192
  { "FIRST",		SYM(FIRST_SYM)},
193
  { "FIXED",		SYM(FIXED_SYM)},
166 by Brian Aker
Removal of FLOAT type
194
  { "FLOAT",		SYM(DOUBLE_SYM)},
1 by brian
clean slate
195
  { "FLUSH",		SYM(FLUSH_SYM)},
196
  { "FOR",		SYM(FOR_SYM)},
197
  { "FORCE",		SYM(FORCE_SYM)},
198
  { "FOREIGN",		SYM(FOREIGN)},
199
  { "FOUND",            SYM(FOUND_SYM)},
200
  { "FRAC_SECOND",      SYM(FRAC_SECOND_SYM)},
201
  { "FROM",		SYM(FROM)},
202
  { "FULL",		SYM(FULL)},
203
  { "GET_FORMAT",       SYM(GET_FORMAT)},
204
  { "GLOBAL",		SYM(GLOBAL_SYM)},
205
  { "GROUP",		SYM(GROUP_SYM)},
206
  { "HANDLER",		SYM(HANDLER_SYM)},
207
  { "HASH",		SYM(HASH_SYM)},
208
  { "HAVING",		SYM(HAVING)},
209
  { "HIGH_PRIORITY",	SYM(HIGH_PRIORITY)},
210
  { "HOST",		SYM(HOST_SYM)},
211
  { "HOSTS",		SYM(HOSTS_SYM)},
212
  { "HOUR",		SYM(HOUR_SYM)},
213
  { "HOUR_MICROSECOND",	SYM(HOUR_MICROSECOND_SYM)},
214
  { "HOUR_MINUTE",	SYM(HOUR_MINUTE_SYM)},
215
  { "HOUR_SECOND",	SYM(HOUR_SECOND_SYM)},
216
  { "IDENTIFIED",	SYM(IDENTIFIED_SYM)},
217
  { "IF",		SYM(IF)},
218
  { "IGNORE",		SYM(IGNORE_SYM)},
219
  { "IMPORT",		SYM(IMPORT)},
220
  { "IN",		SYM(IN_SYM)},
221
  { "INDEX",		SYM(INDEX_SYM)},
222
  { "INDEXES",		SYM(INDEXES)},
223
  { "INFILE",		SYM(INFILE)},
224
  { "INITIAL_SIZE",	SYM(INITIAL_SIZE_SYM)},
225
  { "INNER",		SYM(INNER_SYM)},
226
  { "INOUT",            SYM(INOUT_SYM)},
227
  { "INSENSITIVE",      SYM(INSENSITIVE_SYM)},
228
  { "INSERT",		SYM(INSERT)},
229
  { "INSERT_METHOD",    SYM(INSERT_METHOD)},
230
  { "INSTALL",          SYM(INSTALL_SYM)},
231
  { "INT",		SYM(INT_SYM)},
232
  { "INT4",		SYM(INT_SYM)},
233
  { "INT8",		SYM(BIGINT)},
234
  { "INTEGER",		SYM(INT_SYM)},
235
  { "INTERVAL",		SYM(INTERVAL_SYM)},
236
  { "INTO",		SYM(INTO)},
237
  { "IO_THREAD",        SYM(RELAY_THREAD)},
238
  { "IS",		SYM(IS)},
239
  { "ISOLATION",	SYM(ISOLATION)},
240
  { "ITERATE",          SYM(ITERATE_SYM)},
241
  { "JOIN",		SYM(JOIN_SYM)},
242
  { "KEY",		SYM(KEY_SYM)},
243
  { "KEYS",		SYM(KEYS)},
244
  { "KEY_BLOCK_SIZE",	SYM(KEY_BLOCK_SIZE)},
245
  { "KILL",		SYM(KILL_SYM)},
246
  { "LAST",		SYM(LAST_SYM)},
247
  { "LEADING",		SYM(LEADING)},
248
  { "LEAVES",		SYM(LEAVES)},
249
  { "LEFT",		SYM(LEFT)},
250
  { "LEVEL",		SYM(LEVEL_SYM)},
251
  { "LIKE",		SYM(LIKE)},
252
  { "LIMIT",		SYM(LIMIT)},
253
  { "LINEAR",		SYM(LINEAR_SYM)},
673.3.7 by Stewart Smith
fix outfile test
254
  { "LINES",            SYM(LINES)},
1 by brian
clean slate
255
  { "LIST",             SYM(LIST_SYM)},
256
  { "LOAD",		SYM(LOAD)},
257
  { "LOCAL",		SYM(LOCAL_SYM)},
258
  { "LOCALTIME",	SYM(NOW_SYM)},
259
  { "LOCALTIMESTAMP",	SYM(NOW_SYM)},
260
  { "LOCK",		SYM(LOCK_SYM)},
261
  { "LOCKS",		SYM(LOCKS_SYM)},
262
  { "LOGFILE",		SYM(LOGFILE_SYM)},
263
  { "LOGS",		SYM(LOGS_SYM)},
264
  { "LONG",		SYM(LONG_SYM)},
110 by Brian Aker
First pass through on consolidating data types.
265
  { "LONGBLOB",		SYM(BLOB_SYM)},
266
  { "LONGTEXT",		SYM(TEXT_SYM)},
1 by brian
clean slate
267
  { "LOOP",             SYM(LOOP_SYM)},
268
  { "LOW_PRIORITY",	SYM(LOW_PRIORITY)},
269
  { "MASTER",           SYM(MASTER_SYM)},
270
  { "MASTER_CONNECT_RETRY",           SYM(MASTER_CONNECT_RETRY_SYM)},
271
  { "MASTER_HOST",           SYM(MASTER_HOST_SYM)},
272
  { "MASTER_LOG_FILE",           SYM(MASTER_LOG_FILE_SYM)},
273
  { "MASTER_LOG_POS",           SYM(MASTER_LOG_POS_SYM)},
274
  { "MASTER_PASSWORD",           SYM(MASTER_PASSWORD_SYM)},
275
  { "MASTER_PORT",           SYM(MASTER_PORT_SYM)},
276
  { "MASTER_SERVER_ID",           SYM(MASTER_SERVER_ID_SYM)},
277
  { "MASTER_USER",           SYM(MASTER_USER_SYM)},
278
  { "MASTER_HEARTBEAT_PERIOD", SYM(MASTER_HEARTBEAT_PERIOD_SYM)},
279
  { "MATCH",		SYM(MATCH)},
280
  { "MAX_CONNECTIONS_PER_HOUR", SYM(MAX_CONNECTIONS_PER_HOUR)},
281
  { "MAX_QUERIES_PER_HOUR", SYM(MAX_QUERIES_PER_HOUR)},
282
  { "MAX_ROWS",		SYM(MAX_ROWS)},
283
  { "MAX_SIZE",		SYM(MAX_SIZE_SYM)},
284
  { "MAX_UPDATES_PER_HOUR", SYM(MAX_UPDATES_PER_HOUR)},
285
  { "MAX_USER_CONNECTIONS", SYM(MAX_USER_CONNECTIONS_SYM)},
286
  { "MAXVALUE",         SYM(MAX_VALUE_SYM)},
287
  { "MEDIUM",		SYM(MEDIUM_SYM)},
110 by Brian Aker
First pass through on consolidating data types.
288
  { "MEDIUMBLOB",	SYM(BLOB_SYM)},
289
  { "MEDIUMTEXT",	SYM(TEXT_SYM)},
1 by brian
clean slate
290
  { "MERGE",		SYM(MERGE_SYM)},
291
  { "MICROSECOND",	SYM(MICROSECOND_SYM)},
292
  { "MIGRATE",          SYM(MIGRATE_SYM)},
293
  { "MINUTE",		SYM(MINUTE_SYM)},
294
  { "MINUTE_MICROSECOND", SYM(MINUTE_MICROSECOND_SYM)},
295
  { "MINUTE_SECOND",	SYM(MINUTE_SECOND_SYM)},
296
  { "MIN_ROWS",		SYM(MIN_ROWS)},
297
  { "MOD",		SYM(MOD_SYM)},
298
  { "MODE",		SYM(MODE_SYM)},
299
  { "MODIFIES",		SYM(MODIFIES_SYM)},
300
  { "MODIFY",		SYM(MODIFY_SYM)},
301
  { "MONTH",		SYM(MONTH_SYM)},
302
  { "NAME",             SYM(NAME_SYM)},
303
  { "NAMES",		SYM(NAMES_SYM)},
304
  { "NATIONAL",		SYM(NATIONAL_SYM)},
305
  { "NATURAL",		SYM(NATURAL)},
306
  { "NEW",              SYM(NEW_SYM)},
307
  { "NEXT",		SYM(NEXT_SYM)},
308
  { "NO",		SYM(NO_SYM)},
309
  { "NO_WAIT",		SYM(NO_WAIT_SYM)},
310
  { "NODEGROUP",	SYM(NODEGROUP_SYM)},
311
  { "NONE",		SYM(NONE_SYM)},
312
  { "NOT",		SYM(NOT_SYM)},
313
  { "NOWAIT",           SYM(NOWAIT_SYM)},
314
  { "NO_WRITE_TO_BINLOG",  SYM(NO_WRITE_TO_BINLOG)},
315
  { "NULL",		SYM(NULL_SYM)},
316
  { "NUMERIC",		SYM(NUMERIC_SYM)},
317
  { "OFFLINE",		SYM(OFFLINE_SYM)},
318
  { "OFFSET",		SYM(OFFSET_SYM)},
319
  { "ON",		SYM(ON)},
320
  { "ONE",              SYM(ONE_SYM)},
321
  { "ONLINE",		SYM(ONLINE_SYM)},
322
  { "ONE_SHOT",		SYM(ONE_SHOT_SYM)},
323
  { "OPEN",		SYM(OPEN_SYM)},
324
  { "OPTIMIZE",		SYM(OPTIMIZE)},
325
  { "OPTIONS",		SYM(OPTIONS_SYM)},
326
  { "OPTION",		SYM(OPTION)},
327
  { "OPTIONALLY",	SYM(OPTIONALLY)},
328
  { "OR",		SYM(OR_SYM)},
329
  { "ORDER",		SYM(ORDER_SYM)},
330
  { "OUT",              SYM(OUT_SYM)},
331
  { "OUTER",		SYM(OUTER)},
332
  { "OUTFILE",		SYM(OUTFILE)},
333
  { "PACK_KEYS",	SYM(PACK_KEYS_SYM)},
334
  { "PAGE",	        SYM(PAGE_SYM)},
335
  { "PAGE_CHECKSUM",        SYM(PAGE_CHECKSUM_SYM)},
383.7.1 by Andrey Zhakov
Initial submit of code and tests
336
  { "PARSE_VCOL_EXPR",  SYM(PARSE_VCOL_EXPR_SYM)},
1 by brian
clean slate
337
  { "PARTIAL",		SYM(PARTIAL)},
338
  { "PHASE",            SYM(PHASE_SYM)},
339
  { "PLUGIN",           SYM(PLUGIN_SYM)},
340
  { "PLUGINS",          SYM(PLUGINS_SYM)},
341
  { "PORT",		SYM(PORT_SYM)},
342
  { "PRECISION",	SYM(PRECISION)},
343
  { "PREV",		SYM(PREV_SYM)},
344
  { "PRIMARY",		SYM(PRIMARY_SYM)},
345
  { "PROCESS"	,	SYM(PROCESS)},
346
  { "PROCESSLIST",	SYM(PROCESSLIST_SYM)},
347
  { "PURGE",		SYM(PURGE)},
348
  { "QUARTER",          SYM(QUARTER_SYM)},
349
  { "QUERY",		SYM(QUERY_SYM)},
350
  { "QUICK",	        SYM(QUICK)},
351
  { "RANGE",            SYM(RANGE_SYM)},
352
  { "READ",		SYM(READ_SYM)},
353
  { "READ_ONLY",	SYM(READ_ONLY_SYM)},
354
  { "READ_WRITE",	SYM(READ_WRITE_SYM)},
355
  { "READS",		SYM(READS_SYM)},
356
  { "REAL",		SYM(REAL)},
357
  { "REBUILD",		SYM(REBUILD_SYM)},
358
  { "RECOVER",          SYM(RECOVER_SYM)},
359
  { "REDO_BUFFER_SIZE",	SYM(REDO_BUFFER_SIZE_SYM)},
360
  { "REDOFILE",         SYM(REDOFILE_SYM)},
361
  { "REDUNDANT",	SYM(REDUNDANT_SYM)},
362
  { "REFERENCES",	SYM(REFERENCES)},
363
  { "RELAY_LOG_FILE",   SYM(RELAY_LOG_FILE_SYM)},
364
  { "RELAY_LOG_POS",    SYM(RELAY_LOG_POS_SYM)},
365
  { "RELAY_THREAD",     SYM(RELAY_THREAD)},
366
  { "RELEASE",		SYM(RELEASE_SYM)},
367
  { "RELOAD",		SYM(RELOAD)},
368
  { "REMOVE",		SYM(REMOVE_SYM)},
369
  { "RENAME",		SYM(RENAME)},
370
  { "REORGANIZE",	SYM(REORGANIZE_SYM)},
371
  { "REPAIR",		SYM(REPAIR)},
372
  { "REPEATABLE",	SYM(REPEATABLE_SYM)},
373
  { "REPLACE",		SYM(REPLACE)},
374
  { "REPLICATION",	SYM(REPLICATION)},
375
  { "REPEAT",           SYM(REPEAT_SYM)},
376
  { "REQUIRE",	        SYM(REQUIRE_SYM)},
377
  { "RESET",		SYM(RESET_SYM)},
378
  { "RESTRICT",		SYM(RESTRICT)},
379
  { "RESUME",           SYM(RESUME_SYM)},
380
  { "RETURN",           SYM(RETURN_SYM)},
381
  { "RETURNS",		SYM(RETURNS_SYM)},
382
  { "REVERSE",		SYM(REVERSE_SYM)},
383
  { "REVOKE",		SYM(REVOKE)},
384
  { "RIGHT",		SYM(RIGHT)},
385
  { "ROLLBACK",		SYM(ROLLBACK_SYM)},
386
  { "ROLLUP",		SYM(ROLLUP_SYM)},
387
  { "ROUTINE",		SYM(ROUTINE_SYM)},
388
  { "ROW",		SYM(ROW_SYM)},
389
  { "ROWS",		SYM(ROWS_SYM)},
390
  { "ROW_FORMAT",	SYM(ROW_FORMAT_SYM)},
391
  { "SAVEPOINT",	SYM(SAVEPOINT_SYM)},
392
  { "SCHEMA",		SYM(DATABASE)},
393
  { "SCHEMAS",          SYM(DATABASES)},
394
  { "SECOND",		SYM(SECOND_SYM)},
395
  { "SECOND_MICROSECOND", SYM(SECOND_MICROSECOND_SYM)},
396
  { "SECURITY",         SYM(SECURITY_SYM)},
397
  { "SELECT",		SYM(SELECT_SYM)},
398
  { "SENSITIVE",        SYM(SENSITIVE_SYM)},
399
  { "SEPARATOR",	SYM(SEPARATOR_SYM)},
400
  { "SERIAL",		SYM(SERIAL_SYM)},
401
  { "SERIALIZABLE",	SYM(SERIALIZABLE_SYM)},
402
  { "SESSION",		SYM(SESSION_SYM)},
403
  { "SERVER",           SYM(SERVER_SYM)},
404
  { "SET",		SYM(SET)},
405
  { "SHARE",		SYM(SHARE_SYM)},
406
  { "SHOW",		SYM(SHOW)},
407
  { "SHUTDOWN",		SYM(SHUTDOWN)},
408
  { "SIMPLE",		SYM(SIMPLE_SYM)},
409
  { "SLAVE",            SYM(SLAVE)},
410
  { "SNAPSHOT",         SYM(SNAPSHOT_SYM)},
411
  { "SOCKET",		SYM(SOCKET_SYM)},
412
  { "SOME",             SYM(ANY_SYM)},
413
  { "SONAME",		SYM(SONAME_SYM)},
414
  { "SOURCE",   SYM(SOURCE_SYM)},
415
  { "SPECIFIC",         SYM(SPECIFIC_SYM)},
416
  { "SQL",              SYM(SQL_SYM)},
417
  { "SQLEXCEPTION",     SYM(SQLEXCEPTION_SYM)},
418
  { "SQLSTATE",         SYM(SQLSTATE_SYM)},
419
  { "SQLWARNING",       SYM(SQLWARNING_SYM)},
420
  { "SQL_BIG_RESULT",	SYM(SQL_BIG_RESULT)},
421
  { "SQL_BUFFER_RESULT", SYM(SQL_BUFFER_RESULT)},
422
  { "SQL_CALC_FOUND_ROWS", SYM(SQL_CALC_FOUND_ROWS)},
423
  { "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT)},
424
  { "SQL_THREAD",	SYM(SQL_THREAD)},
425
  { "SQL_TSI_FRAC_SECOND", SYM(FRAC_SECOND_SYM)},
426
  { "SQL_TSI_SECOND",   SYM(SECOND_SYM)},
427
  { "SQL_TSI_MINUTE",   SYM(MINUTE_SYM)},
428
  { "SQL_TSI_HOUR",     SYM(HOUR_SYM)},
429
  { "SQL_TSI_DAY",      SYM(DAY_SYM)},
430
  { "SQL_TSI_WEEK",     SYM(WEEK_SYM)},
431
  { "SQL_TSI_MONTH",    SYM(MONTH_SYM)},
432
  { "SQL_TSI_QUARTER",  SYM(QUARTER_SYM)},
433
  { "SQL_TSI_YEAR",     SYM(YEAR_SYM)},
434
  { "START",		SYM(START_SYM)},
435
  { "STARTING",		SYM(STARTING)},
436
  { "STARTS",		SYM(STARTS_SYM)},
437
  { "STATUS",		SYM(STATUS_SYM)},
438
  { "STOP",		SYM(STOP_SYM)},
439
  { "STORAGE",		SYM(STORAGE_SYM)},
383.7.1 by Andrey Zhakov
Initial submit of code and tests
440
  { "STORED",           SYM(STORED_SYM)},
1 by brian
clean slate
441
  { "STRAIGHT_JOIN",	SYM(STRAIGHT_JOIN)},
442
  { "STRING",		SYM(STRING_SYM)},
443
  { "SUBJECT",		SYM(SUBJECT_SYM)},
444
  { "SUPER",		SYM(SUPER_SYM)},
445
  { "SUSPEND",          SYM(SUSPEND_SYM)},
446
  { "SWAPS",      SYM(SWAPS_SYM)},
447
  { "SWITCHES",   SYM(SWITCHES_SYM)},
448
  { "TABLE",		SYM(TABLE_SYM)},
449
  { "TABLES",		SYM(TABLES)},
108 by Brian Aker
Removed unwanted ALTER TABLESPACE, left in valuable bits.
450
  { "TABLESPACE",	        SYM(TABLESPACE)},
1 by brian
clean slate
451
  { "TABLE_CHECKSUM",	SYM(TABLE_CHECKSUM_SYM)},
452
  { "TEMPORARY",	SYM(TEMPORARY)},
453
  { "TEMPTABLE",	SYM(TEMPTABLE_SYM)},
454
  { "TERMINATED",	SYM(TERMINATED)},
455
  { "TEXT",		SYM(TEXT_SYM)},
456
  { "THAN",             SYM(THAN_SYM)},
457
  { "THEN",		SYM(THEN_SYM)},
458
  { "TIME",		SYM(TIME_SYM)},
459
  { "TIMESTAMP",	SYM(TIMESTAMP)},
460
  { "TIMESTAMPADD",     SYM(TIMESTAMP_ADD)},
461
  { "TIMESTAMPDIFF",    SYM(TIMESTAMP_DIFF)},
110 by Brian Aker
First pass through on consolidating data types.
462
  { "TINYBLOB",		SYM(BLOB_SYM)},
463
  { "TINYTEXT",		SYM(TEXT_SYM)},
1 by brian
clean slate
464
  { "TO",		SYM(TO_SYM)},
465
  { "TRAILING",		SYM(TRAILING)},
466
  { "TRANSACTION",	SYM(TRANSACTION_SYM)},
467
  { "TRANSACTIONAL",	SYM(TRANSACTIONAL_SYM)},
468
  { "TRUE",		SYM(TRUE_SYM)},
469
  { "TRUNCATE",		SYM(TRUNCATE_SYM)},
470
  { "TYPE",		SYM(TYPE_SYM)},
471
  { "TYPES",		SYM(TYPES_SYM)},
472
  { "UNCOMMITTED",	SYM(UNCOMMITTED_SYM)},
473
  { "UNDEFINED",	SYM(UNDEFINED_SYM)},
474
  { "UNDOFILE", 	SYM(UNDOFILE_SYM)},
475
  { "UNDO",             SYM(UNDO_SYM)},
476
  { "UNION",	        SYM(UNION_SYM)},
477
  { "UNIQUE",		SYM(UNIQUE_SYM)},
478
  { "UNKNOWN",		SYM(UNKNOWN_SYM)},
479
  { "UNLOCK",		SYM(UNLOCK_SYM)},
480
  { "UNTIL",		SYM(UNTIL_SYM)},
481
  { "UPDATE",		SYM(UPDATE_SYM)},
482
  { "UPGRADE",          SYM(UPGRADE_SYM)},
483
  { "USAGE",		SYM(USAGE)},
484
  { "USE",		SYM(USE_SYM)},
485
  { "USER",		SYM(USER)},
486
  { "USER_RESOURCES",	SYM(RESOURCES)},
487
  { "USE_FRM",		SYM(USE_FRM)},
488
  { "USING",		SYM(USING)},
489
  { "UTC_DATE",         SYM(UTC_DATE_SYM)},
490
  { "UTC_TIME",         SYM(UTC_TIME_SYM)},
491
  { "UTC_TIMESTAMP",    SYM(UTC_TIMESTAMP_SYM)},
492
  { "VALUE",		SYM(VALUE_SYM)},
493
  { "VALUES",		SYM(VALUES)},
494
  { "VARBINARY",	SYM(VARBINARY)},
495
  { "VARCHAR",		SYM(VARCHAR)},
496
  { "VARCHARACTER",	SYM(VARCHAR)},
497
  { "VARIABLES",	SYM(VARIABLES)},
498
  { "VARYING",		SYM(VARYING)},
499
  { "WAIT",		SYM(WAIT_SYM)},
500
  { "WARNINGS",		SYM(WARNINGS)},
501
  { "WEEK",		SYM(WEEK_SYM)},
502
  { "WEIGHT_STRING",	SYM(WEIGHT_STRING_SYM)},
503
  { "WHEN",		SYM(WHEN_SYM)},
504
  { "WHERE",		SYM(WHERE)},
505
  { "WITH",		SYM(WITH)},
506
  { "WORK",		SYM(WORK_SYM)},
507
  { "WRITE",		SYM(WRITE_SYM)},
383.7.1 by Andrey Zhakov
Initial submit of code and tests
508
  { "VIRTUAL",          SYM(VIRTUAL_SYM)},
1 by brian
clean slate
509
  { "XOR",		SYM(XOR)},
510
  { "YEAR",		SYM(YEAR_SYM)},
511
  { "YEAR_MONTH",	SYM(YEAR_MONTH_SYM)},
512
};
513
514
515
static SYMBOL sql_functions[] = {
516
  { "ADDDATE",		SYM(ADDDATE_SYM)},
517
  { "CAST",		SYM(CAST_SYM)},
518
  { "COUNT",		SYM(COUNT_SYM)},
519
  { "CURDATE",		SYM(CURDATE)},
520
  { "CURTIME",		SYM(CURTIME)},
521
  { "DATE_ADD",		SYM(DATE_ADD_INTERVAL)},
522
  { "DATE_SUB",		SYM(DATE_SUB_INTERVAL)},
523
  { "EXTRACT",		SYM(EXTRACT_SYM)},
524
  { "GROUP_CONCAT",	SYM(GROUP_CONCAT_SYM)},
525
  { "MAX",		SYM(MAX_SYM)},
526
  { "MID",		SYM(SUBSTRING)},	/* unireg function */
527
  { "MIN",		SYM(MIN_SYM)},
528
  { "NOW",		SYM(NOW_SYM)},
529
  { "POSITION",		SYM(POSITION_SYM)},
530
  { "SESSION_USER",     SYM(USER)},
531
  { "STD",		SYM(STD_SYM)},
532
  { "STDDEV",		SYM(STD_SYM)},
533
  { "STDDEV_POP",	SYM(STD_SYM)},
534
  { "STDDEV_SAMP",	SYM(STDDEV_SAMP_SYM)},
535
  { "SUBDATE",		SYM(SUBDATE_SYM)},
536
  { "SUBSTR",		SYM(SUBSTRING)},
537
  { "SUBSTRING",	SYM(SUBSTRING)},
538
  { "SUM",		SYM(SUM_SYM)},
539
  { "SYSDATE",		SYM(SYSDATE)},
540
  { "SYSTEM_USER",      SYM(USER)},
541
  { "TRIM",		SYM(TRIM)},
542
  { "VARIANCE",		SYM(VARIANCE_SYM)},
543
  { "VAR_POP",		SYM(VARIANCE_SYM)},
544
  { "VAR_SAMP",		SYM(VAR_SAMP_SYM)},
545
};