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