MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
lex.h
1 #ifndef LEX_INCLUDED
2 #define LEX_INCLUDED
3 
4 /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
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 Foundation,
17  51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
18 
19 
20 /* This file includes all reserved words and functions */
21 
22 #include "lex_symbol.h"
23 
24 SYM_GROUP sym_group_common= {"", ""};
25 SYM_GROUP sym_group_geom= {"Spatial extentions", "HAVE_SPATIAL"};
26 SYM_GROUP sym_group_rtree= {"RTree keys", "HAVE_RTREE_KEYS"};
27 
28 /* We don't want to include sql_yacc.h into gen_lex_hash */
29 #ifdef NO_YACC_SYMBOLS
30 #define SYM_OR_NULL(A) 0
31 #else
32 #define SYM_OR_NULL(A) A
33 #endif
34 
35 #define SYM(A) SYM_OR_NULL(A),0,&sym_group_common
36 
37 /*
38  Symbols are broken into separated arrays to allow field names with
39  same name as functions.
40  These are kept sorted for human lookup (the symbols are hashed).
41 
42  NOTE! The symbol tables should be the same regardless of what features
43  are compiled into the server. Don't add ifdef'ed symbols to the
44  lists
45 */
46 
47 static SYMBOL symbols[] = {
48  { "&&", SYM(AND_AND_SYM)},
49  { "<", SYM(LT)},
50  { "<=", SYM(LE)},
51  { "<>", SYM(NE)},
52  { "!=", SYM(NE)},
53  { "=", SYM(EQ)},
54  { ">", SYM(GT_SYM)},
55  { ">=", SYM(GE)},
56  { "<<", SYM(SHIFT_LEFT)},
57  { ">>", SYM(SHIFT_RIGHT)},
58  { "<=>", SYM(EQUAL_SYM)},
59  { "ACCESSIBLE", SYM(ACCESSIBLE_SYM)},
60  { "ACTION", SYM(ACTION)},
61  { "ADD", SYM(ADD)},
62  { "AFTER", SYM(AFTER_SYM)},
63  { "AGAINST", SYM(AGAINST)},
64  { "AGGREGATE", SYM(AGGREGATE_SYM)},
65  { "ALL", SYM(ALL)},
66  { "ALGORITHM", SYM(ALGORITHM_SYM)},
67  { "ALTER", SYM(ALTER)},
68  { "ANALYSE", SYM(ANALYSE_SYM)}, // this one is for PROCEDURE ANALYSE
69  { "ANALYZE", SYM(ANALYZE_SYM)}, // this one is for ANALYZE TABLE etc
70  { "AND", SYM(AND_SYM)},
71  { "ANY", SYM(ANY_SYM)},
72  { "AS", SYM(AS)},
73  { "ASC", SYM(ASC)},
74  { "ASCII", SYM(ASCII_SYM)},
75  { "ASENSITIVE", SYM(ASENSITIVE_SYM)},
76  { "AT", SYM(AT_SYM)},
77  { "AUTO_INCREMENT", SYM(AUTO_INC)},
78  { "AUTOEXTEND_SIZE", SYM(AUTOEXTEND_SIZE_SYM)},
79  { "AVG", SYM(AVG_SYM)},
80  { "AVG_ROW_LENGTH", SYM(AVG_ROW_LENGTH)},
81  { "BACKUP", SYM(BACKUP_SYM)},
82  { "BEFORE", SYM(BEFORE_SYM)},
83  { "BEGIN", SYM(BEGIN_SYM)},
84  { "BETWEEN", SYM(BETWEEN_SYM)},
85  { "BIGINT", SYM(BIGINT)},
86  { "BINARY", SYM(BINARY)},
87  { "BINLOG", SYM(BINLOG_SYM)},
88  { "BIT", SYM(BIT_SYM)},
89  { "BLOB", SYM(BLOB_SYM)},
90  { "BLOCK", SYM(BLOCK_SYM)},
91  { "BOOL", SYM(BOOL_SYM)},
92  { "BOOLEAN", SYM(BOOLEAN_SYM)},
93  { "BOTH", SYM(BOTH)},
94  { "BTREE", SYM(BTREE_SYM)},
95  { "BY", SYM(BY)},
96  { "BYTE", SYM(BYTE_SYM)},
97  { "CACHE", SYM(CACHE_SYM)},
98  { "CALL", SYM(CALL_SYM)},
99  { "CASCADE", SYM(CASCADE)},
100  { "CASCADED", SYM(CASCADED)},
101  { "CASE", SYM(CASE_SYM)},
102  { "CATALOG_NAME", SYM(CATALOG_NAME_SYM)},
103  { "CHAIN", SYM(CHAIN_SYM)},
104  { "CHANGE", SYM(CHANGE)},
105  { "CHANGED", SYM(CHANGED)},
106  { "CHAR", SYM(CHAR_SYM)},
107  { "CHARACTER", SYM(CHAR_SYM)},
108  { "CHARSET", SYM(CHARSET)},
109  { "CHECK", SYM(CHECK_SYM)},
110  { "CHECKSUM", SYM(CHECKSUM_SYM)},
111  { "CIPHER", SYM(CIPHER_SYM)},
112  { "CLASS_ORIGIN", SYM(CLASS_ORIGIN_SYM)},
113  { "CLIENT", SYM(CLIENT_SYM)},
114  { "CLOSE", SYM(CLOSE_SYM)},
115  { "COALESCE", SYM(COALESCE)},
116  { "CODE", SYM(CODE_SYM)},
117  { "COLLATE", SYM(COLLATE_SYM)},
118  { "COLLATION", SYM(COLLATION_SYM)},
119  { "COLUMN", SYM(COLUMN_SYM)},
120  { "COLUMN_FORMAT", SYM(COLUMN_FORMAT_SYM)},
121  { "COLUMN_NAME", SYM(COLUMN_NAME_SYM)},
122  { "COLUMNS", SYM(COLUMNS)},
123  { "COMMENT", SYM(COMMENT_SYM)},
124  { "COMMIT", SYM(COMMIT_SYM)},
125  { "COMMITTED", SYM(COMMITTED_SYM)},
126  { "COMPACT", SYM(COMPACT_SYM)},
127  { "COMPLETION", SYM(COMPLETION_SYM)},
128  { "COMPRESSED", SYM(COMPRESSED_SYM)},
129  { "CONCURRENT", SYM(CONCURRENT)},
130  { "CONDITION", SYM(CONDITION_SYM)},
131  { "CONNECTION", SYM(CONNECTION_SYM)},
132  { "CONSISTENT", SYM(CONSISTENT_SYM)},
133  { "CONSTRAINT", SYM(CONSTRAINT)},
134  { "CONSTRAINT_CATALOG", SYM(CONSTRAINT_CATALOG_SYM)},
135  { "CONSTRAINT_NAME", SYM(CONSTRAINT_NAME_SYM)},
136  { "CONSTRAINT_SCHEMA", SYM(CONSTRAINT_SCHEMA_SYM)},
137  { "CONTAINS", SYM(CONTAINS_SYM)},
138  { "CONTEXT", SYM(CONTEXT_SYM)},
139  { "CONTINUE", SYM(CONTINUE_SYM)},
140  { "CONVERT", SYM(CONVERT_SYM)},
141  { "CPU", SYM(CPU_SYM)},
142  { "CREATE", SYM(CREATE)},
143  { "CROSS", SYM(CROSS)},
144  { "CUBE", SYM(CUBE_SYM)},
145  { "CURRENT", SYM(CURRENT_SYM)},
146  { "CURRENT_DATE", SYM(CURDATE)},
147  { "CURRENT_TIME", SYM(CURTIME)},
148  { "CURRENT_TIMESTAMP", SYM(NOW_SYM)},
149  { "CURRENT_USER", SYM(CURRENT_USER)},
150  { "CURSOR", SYM(CURSOR_SYM)},
151  { "CURSOR_NAME", SYM(CURSOR_NAME_SYM)},
152  { "DATA", SYM(DATA_SYM)},
153  { "DATABASE", SYM(DATABASE)},
154  { "DATABASES", SYM(DATABASES)},
155  { "DATAFILE", SYM(DATAFILE_SYM)},
156  { "DATE", SYM(DATE_SYM)},
157  { "DATETIME", SYM(DATETIME)},
158  { "DAY", SYM(DAY_SYM)},
159  { "DAY_HOUR", SYM(DAY_HOUR_SYM)},
160  { "DAY_MICROSECOND", SYM(DAY_MICROSECOND_SYM)},
161  { "DAY_MINUTE", SYM(DAY_MINUTE_SYM)},
162  { "DAY_SECOND", SYM(DAY_SECOND_SYM)},
163  { "DEALLOCATE", SYM(DEALLOCATE_SYM)},
164  { "DEC", SYM(DECIMAL_SYM)},
165  { "DECIMAL", SYM(DECIMAL_SYM)},
166  { "DECLARE", SYM(DECLARE_SYM)},
167  { "DEFAULT", SYM(DEFAULT)},
168  { "DEFAULT_AUTH", SYM(DEFAULT_AUTH_SYM)},
169  { "DEFINER", SYM(DEFINER_SYM)},
170  { "DELAYED", SYM(DELAYED_SYM)},
171  { "DELAY_KEY_WRITE", SYM(DELAY_KEY_WRITE_SYM)},
172  { "DELETE", SYM(DELETE_SYM)},
173  { "DESC", SYM(DESC)},
174  { "DESCRIBE", SYM(DESCRIBE)},
175  { "DES_KEY_FILE", SYM(DES_KEY_FILE)},
176  { "DETERMINISTIC", SYM(DETERMINISTIC_SYM)},
177  { "DIAGNOSTICS", SYM(DIAGNOSTICS_SYM)},
178  { "DIRECTORY", SYM(DIRECTORY_SYM)},
179  { "DISABLE", SYM(DISABLE_SYM)},
180  { "DISCARD", SYM(DISCARD)},
181  { "DISK", SYM(DISK_SYM)},
182  { "DISTINCT", SYM(DISTINCT)},
183  { "DISTINCTROW", SYM(DISTINCT)}, /* Access likes this */
184  { "DIV", SYM(DIV_SYM)},
185  { "DO", SYM(DO_SYM)},
186  { "DOUBLE", SYM(DOUBLE_SYM)},
187  { "DROP", SYM(DROP)},
188  { "DUAL", SYM(DUAL_SYM)},
189  { "DUMPFILE", SYM(DUMPFILE)},
190  { "DUPLICATE", SYM(DUPLICATE_SYM)},
191  { "DYNAMIC", SYM(DYNAMIC_SYM)},
192  { "EACH", SYM(EACH_SYM)},
193  { "ELSE", SYM(ELSE)},
194  { "ELSEIF", SYM(ELSEIF_SYM)},
195  { "ENABLE", SYM(ENABLE_SYM)},
196  { "ENCLOSED", SYM(ENCLOSED)},
197  { "END", SYM(END)},
198  { "ENDS", SYM(ENDS_SYM)},
199  { "ENGINE", SYM(ENGINE_SYM)},
200  { "ENGINES", SYM(ENGINES_SYM)},
201  { "ENUM", SYM(ENUM)},
202  { "ERROR", SYM(ERROR_SYM)},
203  { "ERRORS", SYM(ERRORS)},
204  { "ESCAPE", SYM(ESCAPE_SYM)},
205  { "ESCAPED", SYM(ESCAPED)},
206  { "EVENT", SYM(EVENT_SYM)},
207  { "EVENTS", SYM(EVENTS_SYM)},
208  { "EVERY", SYM(EVERY_SYM)},
209  { "EXCHANGE", SYM(EXCHANGE_SYM)},
210  { "EXECUTE", SYM(EXECUTE_SYM)},
211  { "EXISTS", SYM(EXISTS)},
212  { "EXIT", SYM(EXIT_SYM)},
213  { "EXPANSION", SYM(EXPANSION_SYM)},
214  { "EXPORT", SYM(EXPORT_SYM)},
215  { "EXPIRE", SYM(EXPIRE_SYM)},
216  { "EXPLAIN", SYM(DESCRIBE)},
217  { "EXTENDED", SYM(EXTENDED_SYM)},
218  { "EXTENT_SIZE", SYM(EXTENT_SIZE_SYM)},
219  { "FALSE", SYM(FALSE_SYM)},
220  { "FAST", SYM(FAST_SYM)},
221  { "FAULTS", SYM(FAULTS_SYM)},
222  { "FETCH", SYM(FETCH_SYM)},
223  { "FIELDS", SYM(COLUMNS)},
224  { "FILE", SYM(FILE_SYM)},
225  { "FIRST", SYM(FIRST_SYM)},
226  { "FIXED", SYM(FIXED_SYM)},
227  { "FLOAT", SYM(FLOAT_SYM)},
228  { "FLOAT4", SYM(FLOAT_SYM)},
229  { "FLOAT8", SYM(DOUBLE_SYM)},
230  { "FLUSH", SYM(FLUSH_SYM)},
231  { "FOR", SYM(FOR_SYM)},
232  { "FORCE", SYM(FORCE_SYM)},
233  { "FOREIGN", SYM(FOREIGN)},
234  { "FORMAT", SYM(FORMAT_SYM)},
235  { "FOUND", SYM(FOUND_SYM)},
236  { "FROM", SYM(FROM)},
237  { "FULL", SYM(FULL)},
238  { "FULLTEXT", SYM(FULLTEXT_SYM)},
239  { "FUNCTION", SYM(FUNCTION_SYM)},
240  { "GENERAL", SYM(GENERAL)},
241  { "GEOMETRY", SYM(GEOMETRY_SYM)},
242  { "GEOMETRYCOLLECTION",SYM(GEOMETRYCOLLECTION)},
243  { "GET_FORMAT", SYM(GET_FORMAT)},
244  { "GET", SYM(GET_SYM)},
245  { "GLOBAL", SYM(GLOBAL_SYM)},
246  { "GRANT", SYM(GRANT)},
247  { "GRANTS", SYM(GRANTS)},
248  { "GROUP", SYM(GROUP_SYM)},
249  { "HANDLER", SYM(HANDLER_SYM)},
250  { "HASH", SYM(HASH_SYM)},
251  { "HAVING", SYM(HAVING)},
252  { "HELP", SYM(HELP_SYM)},
253  { "HIGH_PRIORITY", SYM(HIGH_PRIORITY)},
254  { "HOST", SYM(HOST_SYM)},
255  { "HOSTS", SYM(HOSTS_SYM)},
256  { "HOUR", SYM(HOUR_SYM)},
257  { "HOUR_MICROSECOND", SYM(HOUR_MICROSECOND_SYM)},
258  { "HOUR_MINUTE", SYM(HOUR_MINUTE_SYM)},
259  { "HOUR_SECOND", SYM(HOUR_SECOND_SYM)},
260  { "IDENTIFIED", SYM(IDENTIFIED_SYM)},
261  { "IF", SYM(IF)},
262  { "IGNORE", SYM(IGNORE_SYM)},
263  { "IGNORE_SERVER_IDS", SYM(IGNORE_SERVER_IDS_SYM)},
264  { "IMPORT", SYM(IMPORT)},
265  { "IN", SYM(IN_SYM)},
266  { "INDEX", SYM(INDEX_SYM)},
267  { "INDEXES", SYM(INDEXES)},
268  { "INFILE", SYM(INFILE)},
269  { "INITIAL_SIZE", SYM(INITIAL_SIZE_SYM)},
270  { "INNER", SYM(INNER_SYM)},
271  { "INOUT", SYM(INOUT_SYM)},
272  { "INSENSITIVE", SYM(INSENSITIVE_SYM)},
273  { "INSERT", SYM(INSERT)},
274  { "INSERT_METHOD", SYM(INSERT_METHOD)},
275  { "INSTALL", SYM(INSTALL_SYM)},
276  { "INT", SYM(INT_SYM)},
277  { "INT1", SYM(TINYINT)},
278  { "INT2", SYM(SMALLINT)},
279  { "INT3", SYM(MEDIUMINT)},
280  { "INT4", SYM(INT_SYM)},
281  { "INT8", SYM(BIGINT)},
282  { "INTEGER", SYM(INT_SYM)},
283  { "INTERVAL", SYM(INTERVAL_SYM)},
284  { "INTO", SYM(INTO)},
285  { "IO", SYM(IO_SYM)},
286  { "IO_AFTER_GTIDS", SYM(IO_AFTER_GTIDS)},
287  { "IO_BEFORE_GTIDS", SYM(IO_BEFORE_GTIDS)},
288  { "IO_THREAD", SYM(RELAY_THREAD)},
289  { "IPC", SYM(IPC_SYM)},
290  { "IS", SYM(IS)},
291  { "ISOLATION", SYM(ISOLATION)},
292  { "ISSUER", SYM(ISSUER_SYM)},
293  { "ITERATE", SYM(ITERATE_SYM)},
294  { "INVOKER", SYM(INVOKER_SYM)},
295  { "JOIN", SYM(JOIN_SYM)},
296  { "KEY", SYM(KEY_SYM)},
297  { "KEYS", SYM(KEYS)},
298  { "KEY_BLOCK_SIZE", SYM(KEY_BLOCK_SIZE)},
299  { "KILL", SYM(KILL_SYM)},
300  { "LANGUAGE", SYM(LANGUAGE_SYM)},
301  { "LAST", SYM(LAST_SYM)},
302  { "LEADING", SYM(LEADING)},
303  { "LEAVE", SYM(LEAVE_SYM)},
304  { "LEAVES", SYM(LEAVES)},
305  { "LEFT", SYM(LEFT)},
306  { "LESS", SYM(LESS_SYM)},
307  { "LEVEL", SYM(LEVEL_SYM)},
308  { "LIKE", SYM(LIKE)},
309  { "LIMIT", SYM(LIMIT)},
310  { "LINEAR", SYM(LINEAR_SYM)},
311  { "LINES", SYM(LINES)},
312  { "LINESTRING", SYM(LINESTRING)},
313  { "LIST", SYM(LIST_SYM)},
314  { "LOAD", SYM(LOAD)},
315  { "LOCAL", SYM(LOCAL_SYM)},
316  { "LOCALTIME", SYM(NOW_SYM)},
317  { "LOCALTIMESTAMP", SYM(NOW_SYM)},
318  { "LOCK", SYM(LOCK_SYM)},
319  { "LOCKS", SYM(LOCKS_SYM)},
320  { "LOGFILE", SYM(LOGFILE_SYM)},
321  { "LOGS", SYM(LOGS_SYM)},
322  { "LONG", SYM(LONG_SYM)},
323  { "LONGBLOB", SYM(LONGBLOB)},
324  { "LONGTEXT", SYM(LONGTEXT)},
325  { "LOOP", SYM(LOOP_SYM)},
326  { "LOW_PRIORITY", SYM(LOW_PRIORITY)},
327  { "MASTER", SYM(MASTER_SYM)},
328  { "MASTER_AUTO_POSITION", SYM(MASTER_AUTO_POSITION_SYM)},
329  { "MASTER_BIND", SYM(MASTER_BIND_SYM)},
330  { "MASTER_CONNECT_RETRY", SYM(MASTER_CONNECT_RETRY_SYM)},
331  { "MASTER_DELAY", SYM(MASTER_DELAY_SYM)},
332  { "MASTER_HOST", SYM(MASTER_HOST_SYM)},
333  { "MASTER_LOG_FILE", SYM(MASTER_LOG_FILE_SYM)},
334  { "MASTER_LOG_POS", SYM(MASTER_LOG_POS_SYM)},
335  { "MASTER_PASSWORD", SYM(MASTER_PASSWORD_SYM)},
336  { "MASTER_PORT", SYM(MASTER_PORT_SYM)},
337  { "MASTER_RETRY_COUNT", SYM(MASTER_RETRY_COUNT_SYM)},
338  { "MASTER_SERVER_ID", SYM(MASTER_SERVER_ID_SYM)},
339  { "MASTER_SSL", SYM(MASTER_SSL_SYM)},
340  { "MASTER_SSL_CA", SYM(MASTER_SSL_CA_SYM)},
341  { "MASTER_SSL_CAPATH",SYM(MASTER_SSL_CAPATH_SYM)},
342  { "MASTER_SSL_CERT", SYM(MASTER_SSL_CERT_SYM)},
343  { "MASTER_SSL_CIPHER",SYM(MASTER_SSL_CIPHER_SYM)},
344  { "MASTER_SSL_CRL", SYM(MASTER_SSL_CRL_SYM)},
345  { "MASTER_SSL_CRLPATH",SYM(MASTER_SSL_CRLPATH_SYM)},
346  { "MASTER_SSL_KEY", SYM(MASTER_SSL_KEY_SYM)},
347  { "MASTER_SSL_VERIFY_SERVER_CERT", SYM(MASTER_SSL_VERIFY_SERVER_CERT_SYM)},
348  { "MASTER_USER", SYM(MASTER_USER_SYM)},
349  { "MASTER_HEARTBEAT_PERIOD", SYM(MASTER_HEARTBEAT_PERIOD_SYM)},
350  { "MATCH", SYM(MATCH)},
351  { "MAX_CONNECTIONS_PER_HOUR", SYM(MAX_CONNECTIONS_PER_HOUR)},
352  { "MAX_QUERIES_PER_HOUR", SYM(MAX_QUERIES_PER_HOUR)},
353  { "MAX_ROWS", SYM(MAX_ROWS)},
354  { "MAX_SIZE", SYM(MAX_SIZE_SYM)},
355  { "MAX_UPDATES_PER_HOUR", SYM(MAX_UPDATES_PER_HOUR)},
356  { "MAX_USER_CONNECTIONS", SYM(MAX_USER_CONNECTIONS_SYM)},
357  { "MAXVALUE", SYM(MAX_VALUE_SYM)},
358  { "MEDIUM", SYM(MEDIUM_SYM)},
359  { "MEDIUMBLOB", SYM(MEDIUMBLOB)},
360  { "MEDIUMINT", SYM(MEDIUMINT)},
361  { "MEDIUMTEXT", SYM(MEDIUMTEXT)},
362  { "MEMORY", SYM(MEMORY_SYM)},
363  { "MERGE", SYM(MERGE_SYM)},
364  { "MESSAGE_TEXT", SYM(MESSAGE_TEXT_SYM)},
365  { "MICROSECOND", SYM(MICROSECOND_SYM)},
366  { "MIDDLEINT", SYM(MEDIUMINT)}, /* For powerbuilder */
367  { "MIGRATE", SYM(MIGRATE_SYM)},
368  { "MINUTE", SYM(MINUTE_SYM)},
369  { "MINUTE_MICROSECOND", SYM(MINUTE_MICROSECOND_SYM)},
370  { "MINUTE_SECOND", SYM(MINUTE_SECOND_SYM)},
371  { "MIN_ROWS", SYM(MIN_ROWS)},
372  { "MOD", SYM(MOD_SYM)},
373  { "MODE", SYM(MODE_SYM)},
374  { "MODIFIES", SYM(MODIFIES_SYM)},
375  { "MODIFY", SYM(MODIFY_SYM)},
376  { "MONTH", SYM(MONTH_SYM)},
377  { "MULTILINESTRING", SYM(MULTILINESTRING)},
378  { "MULTIPOINT", SYM(MULTIPOINT)},
379  { "MULTIPOLYGON", SYM(MULTIPOLYGON)},
380  { "MUTEX", SYM(MUTEX_SYM)},
381  { "MYSQL_ERRNO", SYM(MYSQL_ERRNO_SYM)},
382  { "NAME", SYM(NAME_SYM)},
383  { "NAMES", SYM(NAMES_SYM)},
384  { "NATIONAL", SYM(NATIONAL_SYM)},
385  { "NATURAL", SYM(NATURAL)},
386  { "NDB", SYM(NDBCLUSTER_SYM)},
387  { "NDBCLUSTER", SYM(NDBCLUSTER_SYM)},
388  { "NCHAR", SYM(NCHAR_SYM)},
389  { "NEW", SYM(NEW_SYM)},
390  { "NEXT", SYM(NEXT_SYM)},
391  { "NO", SYM(NO_SYM)},
392  { "NO_WAIT", SYM(NO_WAIT_SYM)},
393  { "NODEGROUP", SYM(NODEGROUP_SYM)},
394  { "NONE", SYM(NONE_SYM)},
395  { "NOT", SYM(NOT_SYM)},
396  { "NO_WRITE_TO_BINLOG", SYM(NO_WRITE_TO_BINLOG)},
397  { "NULL", SYM(NULL_SYM)},
398  { "NUMBER", SYM(NUMBER_SYM)},
399  { "NUMERIC", SYM(NUMERIC_SYM)},
400  { "NVARCHAR", SYM(NVARCHAR_SYM)},
401  { "OFFSET", SYM(OFFSET_SYM)},
402  { "OLD_PASSWORD", SYM(OLD_PASSWORD)},
403  { "ON", SYM(ON)},
404  { "ONE", SYM(ONE_SYM)},
405  { "ONLY", SYM(ONLY_SYM)},
406  { "OPEN", SYM(OPEN_SYM)},
407  { "OPTIMIZE", SYM(OPTIMIZE)},
408  { "OPTIONS", SYM(OPTIONS_SYM)},
409  { "OPTION", SYM(OPTION)},
410  { "OPTIONALLY", SYM(OPTIONALLY)},
411  { "OR", SYM(OR_SYM)},
412  { "ORDER", SYM(ORDER_SYM)},
413  { "OUT", SYM(OUT_SYM)},
414  { "OUTER", SYM(OUTER)},
415  { "OUTFILE", SYM(OUTFILE)},
416  { "OWNER", SYM(OWNER_SYM)},
417  { "PACK_KEYS", SYM(PACK_KEYS_SYM)},
418  { "PARSER", SYM(PARSER_SYM)},
419  { "PAGE", SYM(PAGE_SYM)},
420  { "PARTIAL", SYM(PARTIAL)},
421  { "PARTITION", SYM(PARTITION_SYM)},
422  { "PARTITIONING", SYM(PARTITIONING_SYM)},
423  { "PARTITIONS", SYM(PARTITIONS_SYM)},
424  { "PASSWORD", SYM(PASSWORD)},
425  { "PHASE", SYM(PHASE_SYM)},
426  { "PLUGIN", SYM(PLUGIN_SYM)},
427  { "PLUGINS", SYM(PLUGINS_SYM)},
428  { "PLUGIN_DIR", SYM(PLUGIN_DIR_SYM)},
429  { "POINT", SYM(POINT_SYM)},
430  { "POLYGON", SYM(POLYGON)},
431  { "PORT", SYM(PORT_SYM)},
432  { "PRECISION", SYM(PRECISION)},
433  { "PREPARE", SYM(PREPARE_SYM)},
434  { "PRESERVE", SYM(PRESERVE_SYM)},
435  { "PREV", SYM(PREV_SYM)},
436  { "PRIMARY", SYM(PRIMARY_SYM)},
437  { "PRIVILEGES", SYM(PRIVILEGES)},
438  { "PROCEDURE", SYM(PROCEDURE_SYM)},
439  { "PROCESS" , SYM(PROCESS)},
440  { "PROCESSLIST", SYM(PROCESSLIST_SYM)},
441  { "PROFILE", SYM(PROFILE_SYM)},
442  { "PROFILES", SYM(PROFILES_SYM)},
443  { "PROXY", SYM(PROXY_SYM)},
444  { "PURGE", SYM(PURGE)},
445  { "QUARTER", SYM(QUARTER_SYM)},
446  { "QUERY", SYM(QUERY_SYM)},
447  { "QUICK", SYM(QUICK)},
448  { "RANGE", SYM(RANGE_SYM)},
449  { "READ", SYM(READ_SYM)},
450  { "READ_ONLY", SYM(READ_ONLY_SYM)},
451  { "READ_WRITE", SYM(READ_WRITE_SYM)},
452  { "READS", SYM(READS_SYM)},
453  { "REAL", SYM(REAL)},
454  { "REBUILD", SYM(REBUILD_SYM)},
455  { "RECOVER", SYM(RECOVER_SYM)},
456  { "REDO_BUFFER_SIZE", SYM(REDO_BUFFER_SIZE_SYM)},
457  { "REDOFILE", SYM(REDOFILE_SYM)},
458  { "REDUNDANT", SYM(REDUNDANT_SYM)},
459  { "REFERENCES", SYM(REFERENCES)},
460  { "REGEXP", SYM(REGEXP)},
461  { "RELAY", SYM(RELAY)},
462  { "RELAYLOG", SYM(RELAYLOG_SYM)},
463  { "RELAY_LOG_FILE", SYM(RELAY_LOG_FILE_SYM)},
464  { "RELAY_LOG_POS", SYM(RELAY_LOG_POS_SYM)},
465  { "RELAY_THREAD", SYM(RELAY_THREAD)},
466  { "RELEASE", SYM(RELEASE_SYM)},
467  { "RELOAD", SYM(RELOAD)},
468  { "REMOVE", SYM(REMOVE_SYM)},
469  { "RENAME", SYM(RENAME)},
470  { "REORGANIZE", SYM(REORGANIZE_SYM)},
471  { "REPAIR", SYM(REPAIR)},
472  { "REPEATABLE", SYM(REPEATABLE_SYM)},
473  { "REPLACE", SYM(REPLACE)},
474  { "REPLICATION", SYM(REPLICATION)},
475  { "REPEAT", SYM(REPEAT_SYM)},
476  { "REQUIRE", SYM(REQUIRE_SYM)},
477  { "RESET", SYM(RESET_SYM)},
478  { "RESIGNAL", SYM(RESIGNAL_SYM)},
479  { "RESTORE", SYM(RESTORE_SYM)},
480  { "RESTRICT", SYM(RESTRICT)},
481  { "RESUME", SYM(RESUME_SYM)},
482  { "RETURNED_SQLSTATE",SYM(RETURNED_SQLSTATE_SYM)},
483  { "RETURN", SYM(RETURN_SYM)},
484  { "RETURNS", SYM(RETURNS_SYM)},
485  { "REVERSE", SYM(REVERSE_SYM)},
486  { "REVOKE", SYM(REVOKE)},
487  { "RIGHT", SYM(RIGHT)},
488  { "RLIKE", SYM(REGEXP)}, /* Like in mSQL2 */
489  { "ROLLBACK", SYM(ROLLBACK_SYM)},
490  { "ROLLUP", SYM(ROLLUP_SYM)},
491  { "ROUTINE", SYM(ROUTINE_SYM)},
492  { "ROW", SYM(ROW_SYM)},
493  { "ROW_COUNT", SYM(ROW_COUNT_SYM)},
494  { "ROWS", SYM(ROWS_SYM)},
495  { "ROW_FORMAT", SYM(ROW_FORMAT_SYM)},
496  { "RTREE", SYM(RTREE_SYM)},
497  { "SAVEPOINT", SYM(SAVEPOINT_SYM)},
498  { "SCHEDULE", SYM(SCHEDULE_SYM)},
499  { "SCHEMA", SYM(DATABASE)},
500  { "SCHEMA_NAME", SYM(SCHEMA_NAME_SYM)},
501  { "SCHEMAS", SYM(DATABASES)},
502  { "SECOND", SYM(SECOND_SYM)},
503  { "SECOND_MICROSECOND", SYM(SECOND_MICROSECOND_SYM)},
504  { "SECURITY", SYM(SECURITY_SYM)},
505  { "SELECT", SYM(SELECT_SYM)},
506  { "SENSITIVE", SYM(SENSITIVE_SYM)},
507  { "SEPARATOR", SYM(SEPARATOR_SYM)},
508  { "SERIAL", SYM(SERIAL_SYM)},
509  { "SERIALIZABLE", SYM(SERIALIZABLE_SYM)},
510  { "SESSION", SYM(SESSION_SYM)},
511  { "SERVER", SYM(SERVER_SYM)},
512  { "SET", SYM(SET)},
513  { "SHARE", SYM(SHARE_SYM)},
514  { "SHOW", SYM(SHOW)},
515  { "SHUTDOWN", SYM(SHUTDOWN)},
516  { "SIGNAL", SYM(SIGNAL_SYM)},
517  { "SIGNED", SYM(SIGNED_SYM)},
518  { "SIMPLE", SYM(SIMPLE_SYM)},
519  { "SLAVE", SYM(SLAVE)},
520  { "SLOW", SYM(SLOW)},
521  { "SNAPSHOT", SYM(SNAPSHOT_SYM)},
522  { "SMALLINT", SYM(SMALLINT)},
523  { "SOCKET", SYM(SOCKET_SYM)},
524  { "SOME", SYM(ANY_SYM)},
525  { "SONAME", SYM(SONAME_SYM)},
526  { "SOUNDS", SYM(SOUNDS_SYM)},
527  { "SOURCE", SYM(SOURCE_SYM)},
528  { "SPATIAL", SYM(SPATIAL_SYM)},
529  { "SPECIFIC", SYM(SPECIFIC_SYM)},
530  { "SQL", SYM(SQL_SYM)},
531  { "SQLEXCEPTION", SYM(SQLEXCEPTION_SYM)},
532  { "SQLSTATE", SYM(SQLSTATE_SYM)},
533  { "SQLWARNING", SYM(SQLWARNING_SYM)},
534  { "SQL_AFTER_GTIDS", SYM(SQL_AFTER_GTIDS)},
535  { "SQL_AFTER_MTS_GAPS", SYM(SQL_AFTER_MTS_GAPS)},
536  { "SQL_BEFORE_GTIDS", SYM(SQL_BEFORE_GTIDS)},
537  { "SQL_BIG_RESULT", SYM(SQL_BIG_RESULT)},
538  { "SQL_BUFFER_RESULT", SYM(SQL_BUFFER_RESULT)},
539  { "SQL_CACHE", SYM(SQL_CACHE_SYM)},
540  { "SQL_CALC_FOUND_ROWS", SYM(SQL_CALC_FOUND_ROWS)},
541  { "SQL_NO_CACHE", SYM(SQL_NO_CACHE_SYM)},
542  { "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT)},
543  { "SQL_THREAD", SYM(SQL_THREAD)},
544  { "SQL_TSI_SECOND", SYM(SECOND_SYM)},
545  { "SQL_TSI_MINUTE", SYM(MINUTE_SYM)},
546  { "SQL_TSI_HOUR", SYM(HOUR_SYM)},
547  { "SQL_TSI_DAY", SYM(DAY_SYM)},
548  { "SQL_TSI_WEEK", SYM(WEEK_SYM)},
549  { "SQL_TSI_MONTH", SYM(MONTH_SYM)},
550  { "SQL_TSI_QUARTER", SYM(QUARTER_SYM)},
551  { "SQL_TSI_YEAR", SYM(YEAR_SYM)},
552  { "SSL", SYM(SSL_SYM)},
553  { "START", SYM(START_SYM)},
554  { "STARTING", SYM(STARTING)},
555  { "STARTS", SYM(STARTS_SYM)},
556  { "STATS_AUTO_RECALC",SYM(STATS_AUTO_RECALC_SYM)},
557  { "STATS_PERSISTENT", SYM(STATS_PERSISTENT_SYM)},
558  { "STATS_SAMPLE_PAGES",SYM(STATS_SAMPLE_PAGES_SYM)},
559  { "STATUS", SYM(STATUS_SYM)},
560  { "STOP", SYM(STOP_SYM)},
561  { "STORAGE", SYM(STORAGE_SYM)},
562  { "STRAIGHT_JOIN", SYM(STRAIGHT_JOIN)},
563  { "STRING", SYM(STRING_SYM)},
564  { "SUBCLASS_ORIGIN", SYM(SUBCLASS_ORIGIN_SYM)},
565  { "SUBJECT", SYM(SUBJECT_SYM)},
566  { "SUBPARTITION", SYM(SUBPARTITION_SYM)},
567  { "SUBPARTITIONS", SYM(SUBPARTITIONS_SYM)},
568  { "SUPER", SYM(SUPER_SYM)},
569  { "SUSPEND", SYM(SUSPEND_SYM)},
570  { "SWAPS", SYM(SWAPS_SYM)},
571  { "SWITCHES", SYM(SWITCHES_SYM)},
572  { "TABLE", SYM(TABLE_SYM)},
573  { "TABLE_NAME", SYM(TABLE_NAME_SYM)},
574  { "TABLES", SYM(TABLES)},
575  { "TABLESPACE", SYM(TABLESPACE)},
576  { "TABLE_CHECKSUM", SYM(TABLE_CHECKSUM_SYM)},
577  { "TEMPORARY", SYM(TEMPORARY)},
578  { "TEMPTABLE", SYM(TEMPTABLE_SYM)},
579  { "TERMINATED", SYM(TERMINATED)},
580  { "TEXT", SYM(TEXT_SYM)},
581  { "THAN", SYM(THAN_SYM)},
582  { "THEN", SYM(THEN_SYM)},
583  { "TIME", SYM(TIME_SYM)},
584  { "TIMESTAMP", SYM(TIMESTAMP)},
585  { "TIMESTAMPADD", SYM(TIMESTAMP_ADD)},
586  { "TIMESTAMPDIFF", SYM(TIMESTAMP_DIFF)},
587  { "TINYBLOB", SYM(TINYBLOB)},
588  { "TINYINT", SYM(TINYINT)},
589  { "TINYTEXT", SYM(TINYTEXT)},
590  { "TO", SYM(TO_SYM)},
591  { "TRAILING", SYM(TRAILING)},
592  { "TRANSACTION", SYM(TRANSACTION_SYM)},
593  { "TRIGGER", SYM(TRIGGER_SYM)},
594  { "TRIGGERS", SYM(TRIGGERS_SYM)},
595  { "TRUE", SYM(TRUE_SYM)},
596  { "TRUNCATE", SYM(TRUNCATE_SYM)},
597  { "TYPE", SYM(TYPE_SYM)},
598  { "TYPES", SYM(TYPES_SYM)},
599  { "UNCOMMITTED", SYM(UNCOMMITTED_SYM)},
600  { "UNDEFINED", SYM(UNDEFINED_SYM)},
601  { "UNDO_BUFFER_SIZE", SYM(UNDO_BUFFER_SIZE_SYM)},
602  { "UNDOFILE", SYM(UNDOFILE_SYM)},
603  { "UNDO", SYM(UNDO_SYM)},
604  { "UNICODE", SYM(UNICODE_SYM)},
605  { "UNION", SYM(UNION_SYM)},
606  { "UNIQUE", SYM(UNIQUE_SYM)},
607  { "UNKNOWN", SYM(UNKNOWN_SYM)},
608  { "UNLOCK", SYM(UNLOCK_SYM)},
609  { "UNINSTALL", SYM(UNINSTALL_SYM)},
610  { "UNSIGNED", SYM(UNSIGNED)},
611  { "UNTIL", SYM(UNTIL_SYM)},
612  { "UPDATE", SYM(UPDATE_SYM)},
613  { "UPGRADE", SYM(UPGRADE_SYM)},
614  { "USAGE", SYM(USAGE)},
615  { "USE", SYM(USE_SYM)},
616  { "USER", SYM(USER)},
617  { "USER_RESOURCES", SYM(RESOURCES)},
618  { "USE_FRM", SYM(USE_FRM)},
619  { "USING", SYM(USING)},
620  { "UTC_DATE", SYM(UTC_DATE_SYM)},
621  { "UTC_TIME", SYM(UTC_TIME_SYM)},
622  { "UTC_TIMESTAMP", SYM(UTC_TIMESTAMP_SYM)},
623  { "VALUE", SYM(VALUE_SYM)},
624  { "VALUES", SYM(VALUES)},
625  { "VARBINARY", SYM(VARBINARY)},
626  { "VARCHAR", SYM(VARCHAR)},
627  { "VARCHARACTER", SYM(VARCHAR)},
628  { "VARIABLES", SYM(VARIABLES)},
629  { "VARYING", SYM(VARYING)},
630  { "WAIT", SYM(WAIT_SYM)},
631  { "WARNINGS", SYM(WARNINGS)},
632  { "WEEK", SYM(WEEK_SYM)},
633  { "WEIGHT_STRING", SYM(WEIGHT_STRING_SYM)},
634  { "WHEN", SYM(WHEN_SYM)},
635  { "WHERE", SYM(WHERE)},
636  { "WHILE", SYM(WHILE_SYM)},
637  { "VIEW", SYM(VIEW_SYM)},
638  { "WITH", SYM(WITH)},
639  { "WORK", SYM(WORK_SYM)},
640  { "WRAPPER", SYM(WRAPPER_SYM)},
641  { "WRITE", SYM(WRITE_SYM)},
642  { "X509", SYM(X509_SYM)},
643  { "XOR", SYM(XOR)},
644  { "XA", SYM(XA_SYM)},
645  { "XML", SYM(XML_SYM)}, /* LOAD XML Arnold/Erik */
646  { "YEAR", SYM(YEAR_SYM)},
647  { "YEAR_MONTH", SYM(YEAR_MONTH_SYM)},
648  { "ZEROFILL", SYM(ZEROFILL)},
649  { "||", SYM(OR_OR_SYM)}
650 };
651 
652 
653 static SYMBOL sql_functions[] = {
654  { "ADDDATE", SYM(ADDDATE_SYM)},
655  { "BIT_AND", SYM(BIT_AND)},
656  { "BIT_OR", SYM(BIT_OR)},
657  { "BIT_XOR", SYM(BIT_XOR)},
658  { "CAST", SYM(CAST_SYM)},
659  { "COUNT", SYM(COUNT_SYM)},
660  { "CURDATE", SYM(CURDATE)},
661  { "CURTIME", SYM(CURTIME)},
662  { "DATE_ADD", SYM(DATE_ADD_INTERVAL)},
663  { "DATE_SUB", SYM(DATE_SUB_INTERVAL)},
664  { "EXTRACT", SYM(EXTRACT_SYM)},
665  { "GROUP_CONCAT", SYM(GROUP_CONCAT_SYM)},
666  { "MAX", SYM(MAX_SYM)},
667  { "MID", SYM(SUBSTRING)}, /* unireg function */
668  { "MIN", SYM(MIN_SYM)},
669  { "NOW", SYM(NOW_SYM)},
670  { "POSITION", SYM(POSITION_SYM)},
671  { "SESSION_USER", SYM(USER)},
672  { "STD", SYM(STD_SYM)},
673  { "STDDEV", SYM(STD_SYM)},
674  { "STDDEV_POP", SYM(STD_SYM)},
675  { "STDDEV_SAMP", SYM(STDDEV_SAMP_SYM)},
676  { "SUBDATE", SYM(SUBDATE_SYM)},
677  { "SUBSTR", SYM(SUBSTRING)},
678  { "SUBSTRING", SYM(SUBSTRING)},
679  { "SUM", SYM(SUM_SYM)},
680  { "SYSDATE", SYM(SYSDATE)},
681  { "SYSTEM_USER", SYM(USER)},
682  { "TRIM", SYM(TRIM)},
683  { "VARIANCE", SYM(VARIANCE_SYM)},
684  { "VAR_POP", SYM(VARIANCE_SYM)},
685  { "VAR_SAMP", SYM(VAR_SAMP_SYM)},
686 };
687 
688 #endif /* LEX_INCLUDED */