github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/dbvendor/mysql/parser/grammar/MySqlLexer.g4 (about)

     1  // For more information please see https://github.com/antlr/grammars-v4/tree/master/sql/mysql/Positive-Technologies
     2  lexer grammar MySqlLexer;
     3  
     4  channels { MYSQLCOMMENT, ERRORCHANNEL }
     5  
     6  // SKIP
     7  
     8  SPACE:                               [ \t\r\n]+    -> channel(HIDDEN);
     9  SPEC_MYSQL_COMMENT:                  '/*!' .+? '*/' -> channel(MYSQLCOMMENT);
    10  COMMENT_INPUT:                       '/*' .*? '*/' -> channel(HIDDEN);
    11  LINE_COMMENT:                        (
    12                                         ('--' [ \t] | '#') ~[\r\n]* ('\r'? '\n' | EOF)
    13                                         | '--' ('\r'? '\n' | EOF)
    14                                       ) -> channel(HIDDEN);
    15  
    16  
    17  // Keywords
    18  // Common Keywords
    19  
    20  ADD:                                 'ADD';
    21  ALL:                                 'ALL';
    22  ALTER:                               'ALTER';
    23  ALWAYS:                              'ALWAYS';
    24  ANALYZE:                             'ANALYZE';
    25  AND:                                 'AND';
    26  AS:                                  'AS';
    27  ASC:                                 'ASC';
    28  BEFORE:                              'BEFORE';
    29  BETWEEN:                             'BETWEEN';
    30  BOTH:                                'BOTH';
    31  BY:                                  'BY';
    32  CALL:                                'CALL';
    33  CASCADE:                             'CASCADE';
    34  CASE:                                'CASE';
    35  CAST:                                'CAST';
    36  CHANGE:                              'CHANGE';
    37  CHARACTER:                           'CHARACTER';
    38  CHECK:                               'CHECK';
    39  COLLATE:                             'COLLATE';
    40  COLUMN:                              'COLUMN';
    41  CONDITION:                           'CONDITION';
    42  CONSTRAINT:                          'CONSTRAINT';
    43  CONTINUE:                            'CONTINUE';
    44  CONVERT:                             'CONVERT';
    45  CREATE:                              'CREATE';
    46  CROSS:                               'CROSS';
    47  CURRENT:                             'CURRENT';
    48  CURRENT_USER:                        'CURRENT_USER';
    49  CURSOR:                              'CURSOR';
    50  DATABASE:                            'DATABASE';
    51  DATABASES:                           'DATABASES';
    52  DECLARE:                             'DECLARE';
    53  DEFAULT:                             'DEFAULT';
    54  DELAYED:                             'DELAYED';
    55  DELETE:                              'DELETE';
    56  DESC:                                'DESC';
    57  DESCRIBE:                            'DESCRIBE';
    58  DETERMINISTIC:                       'DETERMINISTIC';
    59  DIAGNOSTICS:                         'DIAGNOSTICS';
    60  DISTINCT:                            'DISTINCT';
    61  DISTINCTROW:                         'DISTINCTROW';
    62  DROP:                                'DROP';
    63  EACH:                                'EACH';
    64  ELSE:                                'ELSE';
    65  ELSEIF:                              'ELSEIF';
    66  EMPTY:                               'EMPTY';
    67  ENCLOSED:                            'ENCLOSED';
    68  ESCAPED:                             'ESCAPED';
    69  EXISTS:                              'EXISTS';
    70  EXIT:                                'EXIT';
    71  EXPLAIN:                             'EXPLAIN';
    72  FALSE:                               'FALSE';
    73  FETCH:                               'FETCH';
    74  FOR:                                 'FOR';
    75  FORCE:                               'FORCE';
    76  FOREIGN:                             'FOREIGN';
    77  FROM:                                'FROM';
    78  FULLTEXT:                            'FULLTEXT';
    79  GENERATED:                           'GENERATED';
    80  GET:                                 'GET';
    81  GRANT:                               'GRANT';
    82  GROUP:                               'GROUP';
    83  HAVING:                              'HAVING';
    84  HIGH_PRIORITY:                       'HIGH_PRIORITY';
    85  IF:                                  'IF';
    86  IGNORE:                              'IGNORE';
    87  IN:                                  'IN';
    88  INDEX:                               'INDEX';
    89  INFILE:                              'INFILE';
    90  INNER:                               'INNER';
    91  INOUT:                               'INOUT';
    92  INSERT:                              'INSERT';
    93  INTERVAL:                            'INTERVAL';
    94  INTO:                                'INTO';
    95  IS:                                  'IS';
    96  ITERATE:                             'ITERATE';
    97  JOIN:                                'JOIN';
    98  KEY:                                 'KEY';
    99  KEYS:                                'KEYS';
   100  KILL:                                'KILL';
   101  LEADING:                             'LEADING';
   102  LEAVE:                               'LEAVE';
   103  LEFT:                                'LEFT';
   104  LIKE:                                'LIKE';
   105  LIMIT:                               'LIMIT';
   106  LINEAR:                              'LINEAR';
   107  LINES:                               'LINES';
   108  LOAD:                                'LOAD';
   109  LOCK:                                'LOCK';
   110  LOOP:                                'LOOP';
   111  LOW_PRIORITY:                        'LOW_PRIORITY';
   112  MASTER_BIND:                         'MASTER_BIND';
   113  MASTER_SSL_VERIFY_SERVER_CERT:       'MASTER_SSL_VERIFY_SERVER_CERT';
   114  MATCH:                               'MATCH';
   115  MAXVALUE:                            'MAXVALUE';
   116  MODIFIES:                            'MODIFIES';
   117  NATURAL:                             'NATURAL';
   118  NOT:                                 'NOT';
   119  NO_WRITE_TO_BINLOG:                  'NO_WRITE_TO_BINLOG';
   120  NULL_LITERAL:                        NULL;
   121  NULL:                                'NULL';
   122  NUMBER:                              'NUMBER';
   123  ON:                                  'ON';
   124  OPTIMIZE:                            'OPTIMIZE';
   125  OPTION:                              'OPTION';
   126  OPTIONALLY:                          'OPTIONALLY';
   127  OR:                                  'OR';
   128  ORDER:                               'ORDER';
   129  OUT:                                 'OUT';
   130  OUTER:                               'OUTER';
   131  OUTFILE:                             'OUTFILE';
   132  PARTITION:                           'PARTITION';
   133  PRIMARY:                             'PRIMARY';
   134  PROCEDURE:                           'PROCEDURE';
   135  PURGE:                               'PURGE';
   136  RANGE:                               'RANGE';
   137  READ:                                'READ';
   138  READS:                               'READS';
   139  REFERENCES:                          'REFERENCES';
   140  REGEXP:                              'REGEXP';
   141  RELEASE:                             'RELEASE';
   142  RENAME:                              'RENAME';
   143  REPEAT:                              'REPEAT';
   144  REPLACE:                             'REPLACE';
   145  REQUIRE:                             'REQUIRE';
   146  RESIGNAL:                            'RESIGNAL';
   147  RESTRICT:                            'RESTRICT';
   148  RETURN:                              'RETURN';
   149  REVOKE:                              'REVOKE';
   150  RIGHT:                               'RIGHT';
   151  RLIKE:                               'RLIKE';
   152  SCHEMA:                              'SCHEMA';
   153  SCHEMAS:                             'SCHEMAS';
   154  SELECT:                              'SELECT';
   155  SET:                                 'SET';
   156  SEPARATOR:                           'SEPARATOR';
   157  SHOW:                                'SHOW';
   158  SIGNAL:                              'SIGNAL';
   159  SPATIAL:                             'SPATIAL';
   160  SQL:                                 'SQL';
   161  SQLEXCEPTION:                        'SQLEXCEPTION';
   162  SQLSTATE:                            'SQLSTATE';
   163  SQLWARNING:                          'SQLWARNING';
   164  SQL_BIG_RESULT:                      'SQL_BIG_RESULT';
   165  SQL_CALC_FOUND_ROWS:                 'SQL_CALC_FOUND_ROWS';
   166  SQL_SMALL_RESULT:                    'SQL_SMALL_RESULT';
   167  SSL:                                 'SSL';
   168  STACKED:                             'STACKED';
   169  STARTING:                            'STARTING';
   170  STRAIGHT_JOIN:                       'STRAIGHT_JOIN';
   171  TABLE:                               'TABLE';
   172  TERMINATED:                          'TERMINATED';
   173  THEN:                                'THEN';
   174  TO:                                  'TO';
   175  TRAILING:                            'TRAILING';
   176  TRIGGER:                             'TRIGGER';
   177  TRUE:                                'TRUE';
   178  UNDO:                                'UNDO';
   179  UNION:                               'UNION';
   180  UNIQUE:                              'UNIQUE';
   181  UNLOCK:                              'UNLOCK';
   182  UNSIGNED:                            'UNSIGNED';
   183  UPDATE:                              'UPDATE';
   184  USAGE:                               'USAGE';
   185  USE:                                 'USE';
   186  USING:                               'USING';
   187  VALUES:                              'VALUES';
   188  WHEN:                                'WHEN';
   189  WHERE:                               'WHERE';
   190  WHILE:                               'WHILE';
   191  WITH:                                'WITH';
   192  WRITE:                               'WRITE';
   193  XOR:                                 'XOR';
   194  ZEROFILL:                            'ZEROFILL';
   195  
   196  
   197  // DATA TYPE Keywords
   198  
   199  TINYINT:                             'TINYINT';
   200  SMALLINT:                            'SMALLINT';
   201  MEDIUMINT:                           'MEDIUMINT';
   202  MIDDLEINT:                           'MIDDLEINT';
   203  INT:                                 'INT';
   204  INT1:                                'INT1';
   205  INT2:                                'INT2';
   206  INT3:                                'INT3';
   207  INT4:                                'INT4';
   208  INT8:                                'INT8';
   209  INTEGER:                             'INTEGER';
   210  BIGINT:                              'BIGINT';
   211  REAL:                                'REAL';
   212  DOUBLE:                              'DOUBLE';
   213  PRECISION:                           'PRECISION';
   214  FLOAT:                               'FLOAT';
   215  FLOAT4:                              'FLOAT4';
   216  FLOAT8:                              'FLOAT8';
   217  DECIMAL:                             'DECIMAL';
   218  DEC:                                 'DEC';
   219  NUMERIC:                             'NUMERIC';
   220  DATE:                                'DATE';
   221  TIME:                                'TIME';
   222  TIMESTAMP:                           'TIMESTAMP';
   223  DATETIME:                            'DATETIME';
   224  YEAR:                                'YEAR';
   225  CHAR:                                'CHAR';
   226  VARCHAR:                             'VARCHAR';
   227  NVARCHAR:                            'NVARCHAR';
   228  NATIONAL:                            'NATIONAL';
   229  BINARY:                              'BINARY';
   230  VARBINARY:                           'VARBINARY';
   231  TINYBLOB:                            'TINYBLOB';
   232  BLOB:                                'BLOB';
   233  MEDIUMBLOB:                          'MEDIUMBLOB';
   234  LONG:                                'LONG';
   235  LONGBLOB:                            'LONGBLOB';
   236  TINYTEXT:                            'TINYTEXT';
   237  TEXT:                                'TEXT';
   238  MEDIUMTEXT:                          'MEDIUMTEXT';
   239  LONGTEXT:                            'LONGTEXT';
   240  ENUM:                                'ENUM';
   241  VARYING:                             'VARYING';
   242  SERIAL:                              'SERIAL';
   243  
   244  
   245  // Interval type Keywords
   246  
   247  YEAR_MONTH:                          'YEAR_MONTH';
   248  DAY_HOUR:                            'DAY_HOUR';
   249  DAY_MINUTE:                          'DAY_MINUTE';
   250  DAY_SECOND:                          'DAY_SECOND';
   251  HOUR_MINUTE:                         'HOUR_MINUTE';
   252  HOUR_SECOND:                         'HOUR_SECOND';
   253  MINUTE_SECOND:                       'MINUTE_SECOND';
   254  SECOND_MICROSECOND:                  'SECOND_MICROSECOND';
   255  MINUTE_MICROSECOND:                  'MINUTE_MICROSECOND';
   256  HOUR_MICROSECOND:                    'HOUR_MICROSECOND';
   257  DAY_MICROSECOND:                     'DAY_MICROSECOND';
   258  
   259  // JSON keywords
   260  JSON_ARRAY:                          'JSON_ARRAY';
   261  JSON_OBJECT:                         'JSON_OBJECT';
   262  JSON_QUOTE:                          'JSON_QUOTE';
   263  JSON_CONTAINS:                       'JSON_CONTAINS';
   264  JSON_CONTAINS_PATH:                  'JSON_CONTAINS_PATH';
   265  JSON_EXTRACT:                        'JSON_EXTRACT';
   266  JSON_KEYS:                           'JSON_KEYS';
   267  JSON_OVERLAPS:                       'JSON_OVERLAPS';
   268  JSON_SEARCH:                         'JSON_SEARCH';
   269  JSON_VALUE:                          'JSON_VALUE';
   270  JSON_ARRAY_APPEND:                   'JSON_ARRAY_APPEND';
   271  JSON_ARRAY_INSERT:                   'JSON_ARRAY_INSERT';
   272  JSON_INSERT:                         'JSON_INSERT';
   273  JSON_MERGE:                          'JSON_MERGE';
   274  JSON_MERGE_PATCH:                    'JSON_MERGE_PATCH';
   275  JSON_MERGE_PRESERVE:                 'JSON_MERGE_PRESERVE';
   276  JSON_REMOVE:                         'JSON_REMOVE';
   277  JSON_REPLACE:                        'JSON_REPLACE';
   278  JSON_SET:                            'JSON_SET';
   279  JSON_UNQUOTE:                        'JSON_UNQUOTE';
   280  JSON_DEPTH:                          'JSON_DEPTH';
   281  JSON_LENGTH:                         'JSON_LENGTH';
   282  JSON_TYPE:                           'JSON_TYPE';
   283  JSON_VALID:                          'JSON_VALID';
   284  JSON_TABLE:                          'JSON_TABLE';
   285  JSON_SCHEMA_VALID:                   'JSON_SCHEMA_VALID';
   286  JSON_SCHEMA_VALIDATION_REPORT:       'JSON_SCHEMA_VALIDATION_REPORT';
   287  JSON_PRETTY:                         'JSON_PRETTY';
   288  JSON_STORAGE_FREE:                   'JSON_STORAGE_FREE';
   289  JSON_STORAGE_SIZE:                   'JSON_STORAGE_SIZE';
   290  JSON_ARRAYAGG:                       'JSON_ARRAYAGG';
   291  JSON_OBJECTAGG:                      'JSON_OBJECTAGG';
   292  
   293  // Group function Keywords
   294  
   295  AVG:                                 'AVG';
   296  BIT_AND:                             'BIT_AND';
   297  BIT_OR:                              'BIT_OR';
   298  BIT_XOR:                             'BIT_XOR';
   299  COUNT:                               'COUNT';
   300  GROUP_CONCAT:                        'GROUP_CONCAT';
   301  MAX:                                 'MAX';
   302  MIN:                                 'MIN';
   303  STD:                                 'STD';
   304  STDDEV:                              'STDDEV';
   305  STDDEV_POP:                          'STDDEV_POP';
   306  STDDEV_SAMP:                         'STDDEV_SAMP';
   307  SUM:                                 'SUM';
   308  VAR_POP:                             'VAR_POP';
   309  VAR_SAMP:                            'VAR_SAMP';
   310  VARIANCE:                            'VARIANCE';
   311  
   312  // Common function Keywords
   313  
   314  CURRENT_DATE:                        'CURRENT_DATE';
   315  CURRENT_TIME:                        'CURRENT_TIME';
   316  CURRENT_TIMESTAMP:                   'CURRENT_TIMESTAMP';
   317  LOCALTIME:                           'LOCALTIME';
   318  CURDATE:                             'CURDATE';
   319  CURTIME:                             'CURTIME';
   320  DATE_ADD:                            'DATE_ADD';
   321  DATE_SUB:                            'DATE_SUB';
   322  EXTRACT:                             'EXTRACT';
   323  LOCALTIMESTAMP:                      'LOCALTIMESTAMP';
   324  NOW:                                 'NOW';
   325  POSITION:                            'POSITION';
   326  SUBSTR:                              'SUBSTR';
   327  SUBSTRING:                           'SUBSTRING';
   328  SYSDATE:                             'SYSDATE';
   329  TRIM:                                'TRIM';
   330  UTC_DATE:                            'UTC_DATE';
   331  UTC_TIME:                            'UTC_TIME';
   332  UTC_TIMESTAMP:                       'UTC_TIMESTAMP';
   333  
   334  // Keywords, but can be ID
   335  // Common Keywords, but can be ID
   336  
   337  ACCOUNT:                             'ACCOUNT';
   338  ACTION:                              'ACTION';
   339  AFTER:                               'AFTER';
   340  AGGREGATE:                           'AGGREGATE';
   341  ALGORITHM:                           'ALGORITHM';
   342  ANY:                                 'ANY';
   343  AT:                                  'AT';
   344  AUTHORS:                             'AUTHORS';
   345  AUTOCOMMIT:                          'AUTOCOMMIT';
   346  AUTOEXTEND_SIZE:                     'AUTOEXTEND_SIZE';
   347  AUTO_INCREMENT:                      'AUTO_INCREMENT';
   348  AVG_ROW_LENGTH:                      'AVG_ROW_LENGTH';
   349  BEGIN:                               'BEGIN';
   350  BINLOG:                              'BINLOG';
   351  BIT:                                 'BIT';
   352  BLOCK:                               'BLOCK';
   353  BOOL:                                'BOOL';
   354  BOOLEAN:                             'BOOLEAN';
   355  BTREE:                               'BTREE';
   356  CACHE:                               'CACHE';
   357  CASCADED:                            'CASCADED';
   358  CHAIN:                               'CHAIN';
   359  CHANGED:                             'CHANGED';
   360  CHANNEL:                             'CHANNEL';
   361  CHECKSUM:                            'CHECKSUM';
   362  PAGE_CHECKSUM:                       'PAGE_CHECKSUM';
   363  CIPHER:                              'CIPHER';
   364  CLASS_ORIGIN:                        'CLASS_ORIGIN';
   365  CLIENT:                              'CLIENT';
   366  CLOSE:                               'CLOSE';
   367  COALESCE:                            'COALESCE';
   368  CODE:                                'CODE';
   369  COLUMNS:                             'COLUMNS';
   370  COLUMN_FORMAT:                       'COLUMN_FORMAT';
   371  COLUMN_NAME:                         'COLUMN_NAME';
   372  COMMENT:                             'COMMENT';
   373  COMMIT:                              'COMMIT';
   374  COMPACT:                             'COMPACT';
   375  COMPLETION:                          'COMPLETION';
   376  COMPRESSED:                          'COMPRESSED';
   377  COMPRESSION:                         'COMPRESSION';
   378  CONCURRENT:                          'CONCURRENT';
   379  CONNECTION:                          'CONNECTION';
   380  CONSISTENT:                          'CONSISTENT';
   381  CONSTRAINT_CATALOG:                  'CONSTRAINT_CATALOG';
   382  CONSTRAINT_SCHEMA:                   'CONSTRAINT_SCHEMA';
   383  CONSTRAINT_NAME:                     'CONSTRAINT_NAME';
   384  CONTAINS:                            'CONTAINS';
   385  CONTEXT:                             'CONTEXT';
   386  CONTRIBUTORS:                        'CONTRIBUTORS';
   387  COPY:                                'COPY';
   388  CPU:                                 'CPU';
   389  CURSOR_NAME:                         'CURSOR_NAME';
   390  DATA:                                'DATA';
   391  DATAFILE:                            'DATAFILE';
   392  DEALLOCATE:                          'DEALLOCATE';
   393  DEFAULT_AUTH:                        'DEFAULT_AUTH';
   394  DEFINER:                             'DEFINER';
   395  DELAY_KEY_WRITE:                     'DELAY_KEY_WRITE';
   396  DES_KEY_FILE:                        'DES_KEY_FILE';
   397  DIRECTORY:                           'DIRECTORY';
   398  DISABLE:                             'DISABLE';
   399  DISCARD:                             'DISCARD';
   400  DISK:                                'DISK';
   401  DO:                                  'DO';
   402  DUMPFILE:                            'DUMPFILE';
   403  DUPLICATE:                           'DUPLICATE';
   404  DYNAMIC:                             'DYNAMIC';
   405  ENABLE:                              'ENABLE';
   406  ENCRYPTION:                          'ENCRYPTION';
   407  END:                                 'END';
   408  ENDS:                                'ENDS';
   409  ENGINE:                              'ENGINE';
   410  ENGINES:                             'ENGINES';
   411  ERROR:                               'ERROR';
   412  ERRORS:                              'ERRORS';
   413  ESCAPE:                              'ESCAPE';
   414  EVEN:                                'EVEN';
   415  EVENT:                               'EVENT';
   416  EVENTS:                              'EVENTS';
   417  EVERY:                               'EVERY';
   418  EXCHANGE:                            'EXCHANGE';
   419  EXCLUSIVE:                           'EXCLUSIVE';
   420  EXPIRE:                              'EXPIRE';
   421  EXPORT:                              'EXPORT';
   422  EXTENDED:                            'EXTENDED';
   423  EXTENT_SIZE:                         'EXTENT_SIZE';
   424  FAST:                                'FAST';
   425  FAULTS:                              'FAULTS';
   426  FIELDS:                              'FIELDS';
   427  FILE_BLOCK_SIZE:                     'FILE_BLOCK_SIZE';
   428  FILTER:                              'FILTER';
   429  FIRST:                               'FIRST';
   430  FIXED:                               'FIXED';
   431  FLUSH:                               'FLUSH';
   432  FOLLOWS:                             'FOLLOWS';
   433  FOUND:                               'FOUND';
   434  FULL:                                'FULL';
   435  FUNCTION:                            'FUNCTION';
   436  GENERAL:                             'GENERAL';
   437  GLOBAL:                              'GLOBAL';
   438  GRANTS:                              'GRANTS';
   439  GROUP_REPLICATION:                   'GROUP_REPLICATION';
   440  HANDLER:                             'HANDLER';
   441  HASH:                                'HASH';
   442  HELP:                                'HELP';
   443  HOST:                                'HOST';
   444  HOSTS:                               'HOSTS';
   445  IDENTIFIED:                          'IDENTIFIED';
   446  IGNORE_SERVER_IDS:                   'IGNORE_SERVER_IDS';
   447  IMPORT:                              'IMPORT';
   448  INDEXES:                             'INDEXES';
   449  INITIAL_SIZE:                        'INITIAL_SIZE';
   450  INPLACE:                             'INPLACE';
   451  INSERT_METHOD:                       'INSERT_METHOD';
   452  INSTALL:                             'INSTALL';
   453  INSTANCE:                            'INSTANCE';
   454  INVISIBLE:                           'INVISIBLE';
   455  INVOKER:                             'INVOKER';
   456  IO:                                  'IO';
   457  IO_THREAD:                           'IO_THREAD';
   458  IPC:                                 'IPC';
   459  ISOLATION:                           'ISOLATION';
   460  ISSUER:                              'ISSUER';
   461  JSON:                                'JSON';
   462  KEY_BLOCK_SIZE:                      'KEY_BLOCK_SIZE';
   463  LANGUAGE:                            'LANGUAGE';
   464  LAST:                                'LAST';
   465  LEAVES:                              'LEAVES';
   466  LESS:                                'LESS';
   467  LEVEL:                               'LEVEL';
   468  LIST:                                'LIST';
   469  LOCAL:                               'LOCAL';
   470  LOGFILE:                             'LOGFILE';
   471  LOGS:                                'LOGS';
   472  MASTER:                              'MASTER';
   473  MASTER_AUTO_POSITION:                'MASTER_AUTO_POSITION';
   474  MASTER_CONNECT_RETRY:                'MASTER_CONNECT_RETRY';
   475  MASTER_DELAY:                        'MASTER_DELAY';
   476  MASTER_HEARTBEAT_PERIOD:             'MASTER_HEARTBEAT_PERIOD';
   477  MASTER_HOST:                         'MASTER_HOST';
   478  MASTER_LOG_FILE:                     'MASTER_LOG_FILE';
   479  MASTER_LOG_POS:                      'MASTER_LOG_POS';
   480  MASTER_PASSWORD:                     'MASTER_PASSWORD';
   481  MASTER_PORT:                         'MASTER_PORT';
   482  MASTER_RETRY_COUNT:                  'MASTER_RETRY_COUNT';
   483  MASTER_SSL:                          'MASTER_SSL';
   484  MASTER_SSL_CA:                       'MASTER_SSL_CA';
   485  MASTER_SSL_CAPATH:                   'MASTER_SSL_CAPATH';
   486  MASTER_SSL_CERT:                     'MASTER_SSL_CERT';
   487  MASTER_SSL_CIPHER:                   'MASTER_SSL_CIPHER';
   488  MASTER_SSL_CRL:                      'MASTER_SSL_CRL';
   489  MASTER_SSL_CRLPATH:                  'MASTER_SSL_CRLPATH';
   490  MASTER_SSL_KEY:                      'MASTER_SSL_KEY';
   491  MASTER_TLS_VERSION:                  'MASTER_TLS_VERSION';
   492  MASTER_USER:                         'MASTER_USER';
   493  MAX_CONNECTIONS_PER_HOUR:            'MAX_CONNECTIONS_PER_HOUR';
   494  MAX_QUERIES_PER_HOUR:                'MAX_QUERIES_PER_HOUR';
   495  MAX_ROWS:                            'MAX_ROWS';
   496  MAX_SIZE:                            'MAX_SIZE';
   497  MAX_UPDATES_PER_HOUR:                'MAX_UPDATES_PER_HOUR';
   498  MAX_USER_CONNECTIONS:                'MAX_USER_CONNECTIONS';
   499  MEDIUM:                              'MEDIUM';
   500  MEMBER:                              'MEMBER';
   501  MERGE:                               'MERGE';
   502  MESSAGE_TEXT:                        'MESSAGE_TEXT';
   503  MID:                                 'MID';
   504  MIGRATE:                             'MIGRATE';
   505  MIN_ROWS:                            'MIN_ROWS';
   506  MODE:                                'MODE';
   507  MODIFY:                              'MODIFY';
   508  MUTEX:                               'MUTEX';
   509  MYSQL:                               'MYSQL';
   510  MYSQL_ERRNO:                         'MYSQL_ERRNO';
   511  NAME:                                'NAME';
   512  NAMES:                               'NAMES';
   513  NCHAR:                               'NCHAR';
   514  NEVER:                               'NEVER';
   515  NEXT:                                'NEXT';
   516  NO:                                  'NO';
   517  NODEGROUP:                           'NODEGROUP';
   518  NONE:                                'NONE';
   519  OFFLINE:                             'OFFLINE';
   520  OFFSET:                              'OFFSET';
   521  OF:                                  'OF';
   522  OJ:                                  'OJ';
   523  OLD_PASSWORD:                        'OLD_PASSWORD';
   524  ONE:                                 'ONE';
   525  ONLINE:                              'ONLINE';
   526  ONLY:                                'ONLY';
   527  OPEN:                                'OPEN';
   528  OPTIMIZER_COSTS:                     'OPTIMIZER_COSTS';
   529  OPTIONS:                             'OPTIONS';
   530  OWNER:                               'OWNER';
   531  PACK_KEYS:                           'PACK_KEYS';
   532  PAGE:                                'PAGE';
   533  PARSER:                              'PARSER';
   534  PARTIAL:                             'PARTIAL';
   535  PARTITIONING:                        'PARTITIONING';
   536  PARTITIONS:                          'PARTITIONS';
   537  PASSWORD:                            'PASSWORD';
   538  PHASE:                               'PHASE';
   539  PLUGIN:                              'PLUGIN';
   540  PLUGIN_DIR:                          'PLUGIN_DIR';
   541  PLUGINS:                             'PLUGINS';
   542  PORT:                                'PORT';
   543  PRECEDES:                            'PRECEDES';
   544  PREPARE:                             'PREPARE';
   545  PRESERVE:                            'PRESERVE';
   546  PREV:                                'PREV';
   547  PROCESSLIST:                         'PROCESSLIST';
   548  PROFILE:                             'PROFILE';
   549  PROFILES:                            'PROFILES';
   550  PROXY:                               'PROXY';
   551  QUERY:                               'QUERY';
   552  QUICK:                               'QUICK';
   553  REBUILD:                             'REBUILD';
   554  RECOVER:                             'RECOVER';
   555  REDO_BUFFER_SIZE:                    'REDO_BUFFER_SIZE';
   556  REDUNDANT:                           'REDUNDANT';
   557  RELAY:                               'RELAY';
   558  RELAY_LOG_FILE:                      'RELAY_LOG_FILE';
   559  RELAY_LOG_POS:                       'RELAY_LOG_POS';
   560  RELAYLOG:                            'RELAYLOG';
   561  REMOVE:                              'REMOVE';
   562  REORGANIZE:                          'REORGANIZE';
   563  REPAIR:                              'REPAIR';
   564  REPLICATE_DO_DB:                     'REPLICATE_DO_DB';
   565  REPLICATE_DO_TABLE:                  'REPLICATE_DO_TABLE';
   566  REPLICATE_IGNORE_DB:                 'REPLICATE_IGNORE_DB';
   567  REPLICATE_IGNORE_TABLE:              'REPLICATE_IGNORE_TABLE';
   568  REPLICATE_REWRITE_DB:                'REPLICATE_REWRITE_DB';
   569  REPLICATE_WILD_DO_TABLE:             'REPLICATE_WILD_DO_TABLE';
   570  REPLICATE_WILD_IGNORE_TABLE:         'REPLICATE_WILD_IGNORE_TABLE';
   571  REPLICATION:                         'REPLICATION';
   572  RESET:                               'RESET';
   573  RESUME:                              'RESUME';
   574  RETURNED_SQLSTATE:                   'RETURNED_SQLSTATE';
   575  RETURNING:                           'RETURNING';
   576  RETURNS:                             'RETURNS';
   577  ROLE:                                'ROLE';
   578  ROLLBACK:                            'ROLLBACK';
   579  ROLLUP:                              'ROLLUP';
   580  ROTATE:                              'ROTATE';
   581  ROW:                                 'ROW';
   582  ROWS:                                'ROWS';
   583  ROW_FORMAT:                          'ROW_FORMAT';
   584  SAVEPOINT:                           'SAVEPOINT';
   585  SCHEDULE:                            'SCHEDULE';
   586  SECURITY:                            'SECURITY';
   587  SERVER:                              'SERVER';
   588  SESSION:                             'SESSION';
   589  SHARE:                               'SHARE';
   590  SHARED:                              'SHARED';
   591  SIGNED:                              'SIGNED';
   592  SIMPLE:                              'SIMPLE';
   593  SLAVE:                               'SLAVE';
   594  SLOW:                                'SLOW';
   595  SNAPSHOT:                            'SNAPSHOT';
   596  SOCKET:                              'SOCKET';
   597  SOME:                                'SOME';
   598  SONAME:                              'SONAME';
   599  SOUNDS:                              'SOUNDS';
   600  SOURCE:                              'SOURCE';
   601  SQL_AFTER_GTIDS:                     'SQL_AFTER_GTIDS';
   602  SQL_AFTER_MTS_GAPS:                  'SQL_AFTER_MTS_GAPS';
   603  SQL_BEFORE_GTIDS:                    'SQL_BEFORE_GTIDS';
   604  SQL_BUFFER_RESULT:                   'SQL_BUFFER_RESULT';
   605  SQL_CACHE:                           'SQL_CACHE';
   606  SQL_NO_CACHE:                        'SQL_NO_CACHE';
   607  SQL_THREAD:                          'SQL_THREAD';
   608  START:                               'START';
   609  STARTS:                              'STARTS';
   610  STATS_AUTO_RECALC:                   'STATS_AUTO_RECALC';
   611  STATS_PERSISTENT:                    'STATS_PERSISTENT';
   612  STATS_SAMPLE_PAGES:                  'STATS_SAMPLE_PAGES';
   613  STATUS:                              'STATUS';
   614  STOP:                                'STOP';
   615  STORAGE:                             'STORAGE';
   616  STORED:                              'STORED';
   617  STRING:                              'STRING';
   618  SUBCLASS_ORIGIN:                     'SUBCLASS_ORIGIN';
   619  SUBJECT:                             'SUBJECT';
   620  SUBPARTITION:                        'SUBPARTITION';
   621  SUBPARTITIONS:                       'SUBPARTITIONS';
   622  SUSPEND:                             'SUSPEND';
   623  SWAPS:                               'SWAPS';
   624  SWITCHES:                            'SWITCHES';
   625  TABLE_NAME:                          'TABLE_NAME';
   626  TABLESPACE:                          'TABLESPACE';
   627  TEMPORARY:                           'TEMPORARY';
   628  TEMPTABLE:                           'TEMPTABLE';
   629  THAN:                                'THAN';
   630  TRADITIONAL:                         'TRADITIONAL';
   631  TRANSACTION:                         'TRANSACTION';
   632  TRANSACTIONAL:                       'TRANSACTIONAL';
   633  TRIGGERS:                            'TRIGGERS';
   634  TRUNCATE:                            'TRUNCATE';
   635  UNDEFINED:                           'UNDEFINED';
   636  UNDOFILE:                            'UNDOFILE';
   637  UNDO_BUFFER_SIZE:                    'UNDO_BUFFER_SIZE';
   638  UNINSTALL:                           'UNINSTALL';
   639  UNKNOWN:                             'UNKNOWN';
   640  UNTIL:                               'UNTIL';
   641  UPGRADE:                             'UPGRADE';
   642  USER:                                'USER';
   643  USE_FRM:                             'USE_FRM';
   644  USER_RESOURCES:                      'USER_RESOURCES';
   645  VALIDATION:                          'VALIDATION';
   646  VALUE:                               'VALUE';
   647  VARIABLES:                           'VARIABLES';
   648  VIEW:                                'VIEW';
   649  VIRTUAL:                             'VIRTUAL';
   650  VISIBLE:                             'VISIBLE';
   651  WAIT:                                'WAIT';
   652  WARNINGS:                            'WARNINGS';
   653  WITHOUT:                             'WITHOUT';
   654  WORK:                                'WORK';
   655  WRAPPER:                             'WRAPPER';
   656  X509:                                'X509';
   657  XA:                                  'XA';
   658  XML:                                 'XML';
   659  
   660  
   661  // Date format Keywords
   662  
   663  EUR:                                 'EUR';
   664  USA:                                 'USA';
   665  JIS:                                 'JIS';
   666  ISO:                                 'ISO';
   667  INTERNAL:                            'INTERNAL';
   668  
   669  
   670  // Interval type Keywords
   671  
   672  QUARTER:                             'QUARTER';
   673  MONTH:                               'MONTH';
   674  DAY:                                 'DAY';
   675  HOUR:                                'HOUR';
   676  MINUTE:                              'MINUTE';
   677  WEEK:                                'WEEK';
   678  SECOND:                              'SECOND';
   679  MICROSECOND:                         'MICROSECOND';
   680  
   681  
   682  // PRIVILEGES
   683  
   684  TABLES:                              'TABLES';
   685  ROUTINE:                             'ROUTINE';
   686  EXECUTE:                             'EXECUTE';
   687  FILE:                                'FILE';
   688  PROCESS:                             'PROCESS';
   689  RELOAD:                              'RELOAD';
   690  SHUTDOWN:                            'SHUTDOWN';
   691  SUPER:                               'SUPER';
   692  PRIVILEGES:                          'PRIVILEGES';
   693  APPLICATION_PASSWORD_ADMIN:          'APPLICATION_PASSWORD_ADMIN';
   694  AUDIT_ADMIN:                         'AUDIT_ADMIN';
   695  BACKUP_ADMIN:                        'BACKUP_ADMIN';
   696  BINLOG_ADMIN:                        'BINLOG_ADMIN';
   697  BINLOG_ENCRYPTION_ADMIN:             'BINLOG_ENCRYPTION_ADMIN';
   698  CLONE_ADMIN:                         'CLONE_ADMIN';
   699  CONNECTION_ADMIN:                    'CONNECTION_ADMIN';
   700  ENCRYPTION_KEY_ADMIN:                'ENCRYPTION_KEY_ADMIN';
   701  FIREWALL_ADMIN:                      'FIREWALL_ADMIN';
   702  FIREWALL_USER:                       'FIREWALL_USER';
   703  FLUSH_OPTIMIZER_COSTS:               'FLUSH_OPTIMIZER_COSTS';
   704  FLUSH_STATUS:                        'FLUSH_STATUS';
   705  FLUSH_TABLES:                        'FLUSH_TABLES';
   706  FLUSH_USER_RESOURCES:                'FLUSH_USER_RESOURCES';
   707  GROUP_REPLICATION_ADMIN:             'GROUP_REPLICATION_ADMIN';
   708  INNODB_REDO_LOG_ARCHIVE:             'INNODB_REDO_LOG_ARCHIVE';
   709  INNODB_REDO_LOG_ENABLE:              'INNODB_REDO_LOG_ENABLE';
   710  NDB_STORED_USER:                     'NDB_STORED_USER';
   711  PERSIST_RO_VARIABLES_ADMIN:          'PERSIST_RO_VARIABLES_ADMIN';
   712  REPLICATION_APPLIER:                 'REPLICATION_APPLIER';
   713  REPLICATION_SLAVE_ADMIN:             'REPLICATION_SLAVE_ADMIN';
   714  RESOURCE_GROUP_ADMIN:                'RESOURCE_GROUP_ADMIN';
   715  RESOURCE_GROUP_USER:                 'RESOURCE_GROUP_USER';
   716  ROLE_ADMIN:                          'ROLE_ADMIN';
   717  SERVICE_CONNECTION_ADMIN:            'SERVICE_CONNECTION_ADMIN';
   718  SESSION_VARIABLES_ADMIN:             QUOTE_SYMB? 'SESSION_VARIABLES_ADMIN' QUOTE_SYMB?;
   719  SET_USER_ID:                         'SET_USER_ID';
   720  SHOW_ROUTINE:                        'SHOW_ROUTINE';
   721  SYSTEM_VARIABLES_ADMIN:              'SYSTEM_VARIABLES_ADMIN';
   722  TABLE_ENCRYPTION_ADMIN:              'TABLE_ENCRYPTION_ADMIN';
   723  VERSION_TOKEN_ADMIN:                 'VERSION_TOKEN_ADMIN';
   724  XA_RECOVER_ADMIN:                    'XA_RECOVER_ADMIN';
   725  
   726  
   727  // Charsets
   728  
   729  ARMSCII8:                            'ARMSCII8';
   730  ASCII:                               'ASCII';
   731  BIG5:                                'BIG5';
   732  CP1250:                              'CP1250';
   733  CP1251:                              'CP1251';
   734  CP1256:                              'CP1256';
   735  CP1257:                              'CP1257';
   736  CP850:                               'CP850';
   737  CP852:                               'CP852';
   738  CP866:                               'CP866';
   739  CP932:                               'CP932';
   740  DEC8:                                'DEC8';
   741  EUCJPMS:                             'EUCJPMS';
   742  EUCKR:                               'EUCKR';
   743  GB2312:                              'GB2312';
   744  GBK:                                 'GBK';
   745  GEOSTD8:                             'GEOSTD8';
   746  GREEK:                               'GREEK';
   747  HEBREW:                              'HEBREW';
   748  HP8:                                 'HP8';
   749  KEYBCS2:                             'KEYBCS2';
   750  KOI8R:                               'KOI8R';
   751  KOI8U:                               'KOI8U';
   752  LATIN1:                              'LATIN1';
   753  LATIN2:                              'LATIN2';
   754  LATIN5:                              'LATIN5';
   755  LATIN7:                              'LATIN7';
   756  MACCE:                               'MACCE';
   757  MACROMAN:                            'MACROMAN';
   758  SJIS:                                'SJIS';
   759  SWE7:                                'SWE7';
   760  TIS620:                              'TIS620';
   761  UCS2:                                'UCS2';
   762  UJIS:                                'UJIS';
   763  UTF16:                               'UTF16';
   764  UTF16LE:                             'UTF16LE';
   765  UTF32:                               'UTF32';
   766  UTF8:                                'UTF8';
   767  UTF8MB3:                             'UTF8MB3';
   768  UTF8MB4:                             'UTF8MB4';
   769  
   770  
   771  // DB Engines
   772  
   773  ARCHIVE:                             'ARCHIVE';
   774  BLACKHOLE:                           'BLACKHOLE';
   775  CSV:                                 'CSV';
   776  FEDERATED:                           'FEDERATED';
   777  INNODB:                              'INNODB';
   778  MEMORY:                              'MEMORY';
   779  MRG_MYISAM:                          'MRG_MYISAM';
   780  MYISAM:                              'MYISAM';
   781  NDB:                                 'NDB';
   782  NDBCLUSTER:                          'NDBCLUSTER';
   783  PERFORMANCE_SCHEMA:                  'PERFORMANCE_SCHEMA';
   784  TOKUDB:                              'TOKUDB';
   785  
   786  
   787  // Transaction Levels
   788  
   789  REPEATABLE:                          'REPEATABLE';
   790  COMMITTED:                           'COMMITTED';
   791  UNCOMMITTED:                         'UNCOMMITTED';
   792  SERIALIZABLE:                        'SERIALIZABLE';
   793  
   794  
   795  // Spatial data types
   796  
   797  GEOMETRYCOLLECTION:                  'GEOMETRYCOLLECTION';
   798  GEOMCOLLECTION:                      'GEOMCOLLECTION';
   799  GEOMETRY:                            'GEOMETRY';
   800  LINESTRING:                          'LINESTRING';
   801  MULTILINESTRING:                     'MULTILINESTRING';
   802  MULTIPOINT:                          'MULTIPOINT';
   803  MULTIPOLYGON:                        'MULTIPOLYGON';
   804  POINT:                               'POINT';
   805  POLYGON:                             'POLYGON';
   806  
   807  
   808  // Common function names
   809  
   810  ABS:                                 'ABS';
   811  ACOS:                                'ACOS';
   812  ADDDATE:                             'ADDDATE';
   813  ADDTIME:                             'ADDTIME';
   814  AES_DECRYPT:                         'AES_DECRYPT';
   815  AES_ENCRYPT:                         'AES_ENCRYPT';
   816  AREA:                                'AREA';
   817  ASBINARY:                            'ASBINARY';
   818  ASIN:                                'ASIN';
   819  ASTEXT:                              'ASTEXT';
   820  ASWKB:                               'ASWKB';
   821  ASWKT:                               'ASWKT';
   822  ASYMMETRIC_DECRYPT:                  'ASYMMETRIC_DECRYPT';
   823  ASYMMETRIC_DERIVE:                   'ASYMMETRIC_DERIVE';
   824  ASYMMETRIC_ENCRYPT:                  'ASYMMETRIC_ENCRYPT';
   825  ASYMMETRIC_SIGN:                     'ASYMMETRIC_SIGN';
   826  ASYMMETRIC_VERIFY:                   'ASYMMETRIC_VERIFY';
   827  ATAN:                                'ATAN';
   828  ATAN2:                               'ATAN2';
   829  BENCHMARK:                           'BENCHMARK';
   830  BIN:                                 'BIN';
   831  BIT_COUNT:                           'BIT_COUNT';
   832  BIT_LENGTH:                          'BIT_LENGTH';
   833  BUFFER:                              'BUFFER';
   834  CATALOG_NAME:                        'CATALOG_NAME';
   835  CEIL:                                'CEIL';
   836  CEILING:                             'CEILING';
   837  CENTROID:                            'CENTROID';
   838  CHARACTER_LENGTH:                    'CHARACTER_LENGTH';
   839  CHARSET:                             'CHARSET';
   840  CHAR_LENGTH:                         'CHAR_LENGTH';
   841  COERCIBILITY:                        'COERCIBILITY';
   842  COLLATION:                           'COLLATION';
   843  COMPRESS:                            'COMPRESS';
   844  CONCAT:                              'CONCAT';
   845  CONCAT_WS:                           'CONCAT_WS';
   846  CONNECTION_ID:                       'CONNECTION_ID';
   847  CONV:                                'CONV';
   848  CONVERT_TZ:                          'CONVERT_TZ';
   849  COS:                                 'COS';
   850  COT:                                 'COT';
   851  CRC32:                               'CRC32';
   852  CREATE_ASYMMETRIC_PRIV_KEY:          'CREATE_ASYMMETRIC_PRIV_KEY';
   853  CREATE_ASYMMETRIC_PUB_KEY:           'CREATE_ASYMMETRIC_PUB_KEY';
   854  CREATE_DH_PARAMETERS:                'CREATE_DH_PARAMETERS';
   855  CREATE_DIGEST:                       'CREATE_DIGEST';
   856  CROSSES:                             'CROSSES';
   857  DATEDIFF:                            'DATEDIFF';
   858  DATE_FORMAT:                         'DATE_FORMAT';
   859  DAYNAME:                             'DAYNAME';
   860  DAYOFMONTH:                          'DAYOFMONTH';
   861  DAYOFWEEK:                           'DAYOFWEEK';
   862  DAYOFYEAR:                           'DAYOFYEAR';
   863  DECODE:                              'DECODE';
   864  DEGREES:                             'DEGREES';
   865  DES_DECRYPT:                         'DES_DECRYPT';
   866  DES_ENCRYPT:                         'DES_ENCRYPT';
   867  DIMENSION:                           'DIMENSION';
   868  DISJOINT:                            'DISJOINT';
   869  ELT:                                 'ELT';
   870  ENCODE:                              'ENCODE';
   871  ENCRYPT:                             'ENCRYPT';
   872  ENDPOINT:                            'ENDPOINT';
   873  ENVELOPE:                            'ENVELOPE';
   874  EQUALS:                              'EQUALS';
   875  EXP:                                 'EXP';
   876  EXPORT_SET:                          'EXPORT_SET';
   877  EXTERIORRING:                        'EXTERIORRING';
   878  EXTRACTVALUE:                        'EXTRACTVALUE';
   879  FIELD:                               'FIELD';
   880  FIND_IN_SET:                         'FIND_IN_SET';
   881  FLOOR:                               'FLOOR';
   882  FORMAT:                              'FORMAT';
   883  FOUND_ROWS:                          'FOUND_ROWS';
   884  FROM_BASE64:                         'FROM_BASE64';
   885  FROM_DAYS:                           'FROM_DAYS';
   886  FROM_UNIXTIME:                       'FROM_UNIXTIME';
   887  GEOMCOLLFROMTEXT:                    'GEOMCOLLFROMTEXT';
   888  GEOMCOLLFROMWKB:                     'GEOMCOLLFROMWKB';
   889  GEOMETRYCOLLECTIONFROMTEXT:          'GEOMETRYCOLLECTIONFROMTEXT';
   890  GEOMETRYCOLLECTIONFROMWKB:           'GEOMETRYCOLLECTIONFROMWKB';
   891  GEOMETRYFROMTEXT:                    'GEOMETRYFROMTEXT';
   892  GEOMETRYFROMWKB:                     'GEOMETRYFROMWKB';
   893  GEOMETRYN:                           'GEOMETRYN';
   894  GEOMETRYTYPE:                        'GEOMETRYTYPE';
   895  GEOMFROMTEXT:                        'GEOMFROMTEXT';
   896  GEOMFROMWKB:                         'GEOMFROMWKB';
   897  GET_FORMAT:                          'GET_FORMAT';
   898  GET_LOCK:                            'GET_LOCK';
   899  GLENGTH:                             'GLENGTH';
   900  GREATEST:                            'GREATEST';
   901  GTID_SUBSET:                         'GTID_SUBSET';
   902  GTID_SUBTRACT:                       'GTID_SUBTRACT';
   903  HEX:                                 'HEX';
   904  IFNULL:                              'IFNULL';
   905  INET6_ATON:                          'INET6_ATON';
   906  INET6_NTOA:                          'INET6_NTOA';
   907  INET_ATON:                           'INET_ATON';
   908  INET_NTOA:                           'INET_NTOA';
   909  INSTR:                               'INSTR';
   910  INTERIORRINGN:                       'INTERIORRINGN';
   911  INTERSECTS:                          'INTERSECTS';
   912  ISCLOSED:                            'ISCLOSED';
   913  ISEMPTY:                             'ISEMPTY';
   914  ISNULL:                              'ISNULL';
   915  ISSIMPLE:                            'ISSIMPLE';
   916  IS_FREE_LOCK:                        'IS_FREE_LOCK';
   917  IS_IPV4:                             'IS_IPV4';
   918  IS_IPV4_COMPAT:                      'IS_IPV4_COMPAT';
   919  IS_IPV4_MAPPED:                      'IS_IPV4_MAPPED';
   920  IS_IPV6:                             'IS_IPV6';
   921  IS_USED_LOCK:                        'IS_USED_LOCK';
   922  LAST_INSERT_ID:                      'LAST_INSERT_ID';
   923  LCASE:                               'LCASE';
   924  LEAST:                               'LEAST';
   925  LENGTH:                              'LENGTH';
   926  LINEFROMTEXT:                        'LINEFROMTEXT';
   927  LINEFROMWKB:                         'LINEFROMWKB';
   928  LINESTRINGFROMTEXT:                  'LINESTRINGFROMTEXT';
   929  LINESTRINGFROMWKB:                   'LINESTRINGFROMWKB';
   930  LN:                                  'LN';
   931  LOAD_FILE:                           'LOAD_FILE';
   932  LOCATE:                              'LOCATE';
   933  LOG:                                 'LOG';
   934  LOG10:                               'LOG10';
   935  LOG2:                                'LOG2';
   936  LOWER:                               'LOWER';
   937  LPAD:                                'LPAD';
   938  LTRIM:                               'LTRIM';
   939  MAKEDATE:                            'MAKEDATE';
   940  MAKETIME:                            'MAKETIME';
   941  MAKE_SET:                            'MAKE_SET';
   942  MASTER_POS_WAIT:                     'MASTER_POS_WAIT';
   943  MBRCONTAINS:                         'MBRCONTAINS';
   944  MBRDISJOINT:                         'MBRDISJOINT';
   945  MBREQUAL:                            'MBREQUAL';
   946  MBRINTERSECTS:                       'MBRINTERSECTS';
   947  MBROVERLAPS:                         'MBROVERLAPS';
   948  MBRTOUCHES:                          'MBRTOUCHES';
   949  MBRWITHIN:                           'MBRWITHIN';
   950  MD5:                                 'MD5';
   951  MLINEFROMTEXT:                       'MLINEFROMTEXT';
   952  MLINEFROMWKB:                        'MLINEFROMWKB';
   953  MONTHNAME:                           'MONTHNAME';
   954  MPOINTFROMTEXT:                      'MPOINTFROMTEXT';
   955  MPOINTFROMWKB:                       'MPOINTFROMWKB';
   956  MPOLYFROMTEXT:                       'MPOLYFROMTEXT';
   957  MPOLYFROMWKB:                        'MPOLYFROMWKB';
   958  MULTILINESTRINGFROMTEXT:             'MULTILINESTRINGFROMTEXT';
   959  MULTILINESTRINGFROMWKB:              'MULTILINESTRINGFROMWKB';
   960  MULTIPOINTFROMTEXT:                  'MULTIPOINTFROMTEXT';
   961  MULTIPOINTFROMWKB:                   'MULTIPOINTFROMWKB';
   962  MULTIPOLYGONFROMTEXT:                'MULTIPOLYGONFROMTEXT';
   963  MULTIPOLYGONFROMWKB:                 'MULTIPOLYGONFROMWKB';
   964  NAME_CONST:                          'NAME_CONST';
   965  NULLIF:                              'NULLIF';
   966  NUMGEOMETRIES:                       'NUMGEOMETRIES';
   967  NUMINTERIORRINGS:                    'NUMINTERIORRINGS';
   968  NUMPOINTS:                           'NUMPOINTS';
   969  OCT:                                 'OCT';
   970  OCTET_LENGTH:                        'OCTET_LENGTH';
   971  ORD:                                 'ORD';
   972  OVERLAPS:                            'OVERLAPS';
   973  PERIOD_ADD:                          'PERIOD_ADD';
   974  PERIOD_DIFF:                         'PERIOD_DIFF';
   975  PI:                                  'PI';
   976  POINTFROMTEXT:                       'POINTFROMTEXT';
   977  POINTFROMWKB:                        'POINTFROMWKB';
   978  POINTN:                              'POINTN';
   979  POLYFROMTEXT:                        'POLYFROMTEXT';
   980  POLYFROMWKB:                         'POLYFROMWKB';
   981  POLYGONFROMTEXT:                     'POLYGONFROMTEXT';
   982  POLYGONFROMWKB:                      'POLYGONFROMWKB';
   983  POW:                                 'POW';
   984  POWER:                               'POWER';
   985  QUOTE:                               'QUOTE';
   986  RADIANS:                             'RADIANS';
   987  RAND:                                'RAND';
   988  RANDOM_BYTES:                        'RANDOM_BYTES';
   989  RELEASE_LOCK:                        'RELEASE_LOCK';
   990  REVERSE:                             'REVERSE';
   991  ROUND:                               'ROUND';
   992  ROW_COUNT:                           'ROW_COUNT';
   993  RPAD:                                'RPAD';
   994  RTRIM:                               'RTRIM';
   995  SEC_TO_TIME:                         'SEC_TO_TIME';
   996  SESSION_USER:                        'SESSION_USER';
   997  SHA:                                 'SHA';
   998  SHA1:                                'SHA1';
   999  SHA2:                                'SHA2';
  1000  SCHEMA_NAME:                         'SCHEMA_NAME';
  1001  SIGN:                                'SIGN';
  1002  SIN:                                 'SIN';
  1003  SLEEP:                               'SLEEP';
  1004  SOUNDEX:                             'SOUNDEX';
  1005  SQL_THREAD_WAIT_AFTER_GTIDS:         'SQL_THREAD_WAIT_AFTER_GTIDS';
  1006  SQRT:                                'SQRT';
  1007  SRID:                                'SRID';
  1008  STARTPOINT:                          'STARTPOINT';
  1009  STRCMP:                              'STRCMP';
  1010  STR_TO_DATE:                         'STR_TO_DATE';
  1011  ST_AREA:                             'ST_AREA';
  1012  ST_ASBINARY:                         'ST_ASBINARY';
  1013  ST_ASTEXT:                           'ST_ASTEXT';
  1014  ST_ASWKB:                            'ST_ASWKB';
  1015  ST_ASWKT:                            'ST_ASWKT';
  1016  ST_BUFFER:                           'ST_BUFFER';
  1017  ST_CENTROID:                         'ST_CENTROID';
  1018  ST_CONTAINS:                         'ST_CONTAINS';
  1019  ST_CROSSES:                          'ST_CROSSES';
  1020  ST_DIFFERENCE:                       'ST_DIFFERENCE';
  1021  ST_DIMENSION:                        'ST_DIMENSION';
  1022  ST_DISJOINT:                         'ST_DISJOINT';
  1023  ST_DISTANCE:                         'ST_DISTANCE';
  1024  ST_ENDPOINT:                         'ST_ENDPOINT';
  1025  ST_ENVELOPE:                         'ST_ENVELOPE';
  1026  ST_EQUALS:                           'ST_EQUALS';
  1027  ST_EXTERIORRING:                     'ST_EXTERIORRING';
  1028  ST_GEOMCOLLFROMTEXT:                 'ST_GEOMCOLLFROMTEXT';
  1029  ST_GEOMCOLLFROMTXT:                  'ST_GEOMCOLLFROMTXT';
  1030  ST_GEOMCOLLFROMWKB:                  'ST_GEOMCOLLFROMWKB';
  1031  ST_GEOMETRYCOLLECTIONFROMTEXT:       'ST_GEOMETRYCOLLECTIONFROMTEXT';
  1032  ST_GEOMETRYCOLLECTIONFROMWKB:        'ST_GEOMETRYCOLLECTIONFROMWKB';
  1033  ST_GEOMETRYFROMTEXT:                 'ST_GEOMETRYFROMTEXT';
  1034  ST_GEOMETRYFROMWKB:                  'ST_GEOMETRYFROMWKB';
  1035  ST_GEOMETRYN:                        'ST_GEOMETRYN';
  1036  ST_GEOMETRYTYPE:                     'ST_GEOMETRYTYPE';
  1037  ST_GEOMFROMTEXT:                     'ST_GEOMFROMTEXT';
  1038  ST_GEOMFROMWKB:                      'ST_GEOMFROMWKB';
  1039  ST_INTERIORRINGN:                    'ST_INTERIORRINGN';
  1040  ST_INTERSECTION:                     'ST_INTERSECTION';
  1041  ST_INTERSECTS:                       'ST_INTERSECTS';
  1042  ST_ISCLOSED:                         'ST_ISCLOSED';
  1043  ST_ISEMPTY:                          'ST_ISEMPTY';
  1044  ST_ISSIMPLE:                         'ST_ISSIMPLE';
  1045  ST_LINEFROMTEXT:                     'ST_LINEFROMTEXT';
  1046  ST_LINEFROMWKB:                      'ST_LINEFROMWKB';
  1047  ST_LINESTRINGFROMTEXT:               'ST_LINESTRINGFROMTEXT';
  1048  ST_LINESTRINGFROMWKB:                'ST_LINESTRINGFROMWKB';
  1049  ST_NUMGEOMETRIES:                    'ST_NUMGEOMETRIES';
  1050  ST_NUMINTERIORRING:                  'ST_NUMINTERIORRING';
  1051  ST_NUMINTERIORRINGS:                 'ST_NUMINTERIORRINGS';
  1052  ST_NUMPOINTS:                        'ST_NUMPOINTS';
  1053  ST_OVERLAPS:                         'ST_OVERLAPS';
  1054  ST_POINTFROMTEXT:                    'ST_POINTFROMTEXT';
  1055  ST_POINTFROMWKB:                     'ST_POINTFROMWKB';
  1056  ST_POINTN:                           'ST_POINTN';
  1057  ST_POLYFROMTEXT:                     'ST_POLYFROMTEXT';
  1058  ST_POLYFROMWKB:                      'ST_POLYFROMWKB';
  1059  ST_POLYGONFROMTEXT:                  'ST_POLYGONFROMTEXT';
  1060  ST_POLYGONFROMWKB:                   'ST_POLYGONFROMWKB';
  1061  ST_SRID:                             'ST_SRID';
  1062  ST_STARTPOINT:                       'ST_STARTPOINT';
  1063  ST_SYMDIFFERENCE:                    'ST_SYMDIFFERENCE';
  1064  ST_TOUCHES:                          'ST_TOUCHES';
  1065  ST_UNION:                            'ST_UNION';
  1066  ST_WITHIN:                           'ST_WITHIN';
  1067  ST_X:                                'ST_X';
  1068  ST_Y:                                'ST_Y';
  1069  SUBDATE:                             'SUBDATE';
  1070  SUBSTRING_INDEX:                     'SUBSTRING_INDEX';
  1071  SUBTIME:                             'SUBTIME';
  1072  SYSTEM_USER:                         'SYSTEM_USER';
  1073  TAN:                                 'TAN';
  1074  TIMEDIFF:                            'TIMEDIFF';
  1075  TIMESTAMPADD:                        'TIMESTAMPADD';
  1076  TIMESTAMPDIFF:                       'TIMESTAMPDIFF';
  1077  TIME_FORMAT:                         'TIME_FORMAT';
  1078  TIME_TO_SEC:                         'TIME_TO_SEC';
  1079  TOUCHES:                             'TOUCHES';
  1080  TO_BASE64:                           'TO_BASE64';
  1081  TO_DAYS:                             'TO_DAYS';
  1082  TO_SECONDS:                          'TO_SECONDS';
  1083  UCASE:                               'UCASE';
  1084  UNCOMPRESS:                          'UNCOMPRESS';
  1085  UNCOMPRESSED_LENGTH:                 'UNCOMPRESSED_LENGTH';
  1086  UNHEX:                               'UNHEX';
  1087  UNIX_TIMESTAMP:                      'UNIX_TIMESTAMP';
  1088  UPDATEXML:                           'UPDATEXML';
  1089  UPPER:                               'UPPER';
  1090  UUID:                                'UUID';
  1091  UUID_SHORT:                          'UUID_SHORT';
  1092  VALIDATE_PASSWORD_STRENGTH:          'VALIDATE_PASSWORD_STRENGTH';
  1093  VERSION:                             'VERSION';
  1094  WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:   'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS';
  1095  WEEKDAY:                             'WEEKDAY';
  1096  WEEKOFYEAR:                          'WEEKOFYEAR';
  1097  WEIGHT_STRING:                       'WEIGHT_STRING';
  1098  WITHIN:                              'WITHIN';
  1099  YEARWEEK:                            'YEARWEEK';
  1100  Y_FUNCTION:                          'Y';
  1101  X_FUNCTION:                          'X';
  1102  
  1103  
  1104  
  1105  // Operators
  1106  // Operators. Assigns
  1107  
  1108  VAR_ASSIGN:                          ':=';
  1109  PLUS_ASSIGN:                         '+=';
  1110  MINUS_ASSIGN:                        '-=';
  1111  MULT_ASSIGN:                         '*=';
  1112  DIV_ASSIGN:                          '/=';
  1113  MOD_ASSIGN:                          '%=';
  1114  AND_ASSIGN:                          '&=';
  1115  XOR_ASSIGN:                          '^=';
  1116  OR_ASSIGN:                           '|=';
  1117  
  1118  
  1119  // Operators. Arithmetics
  1120  
  1121  STAR:                                '*';
  1122  DIVIDE:                              '/';
  1123  MODULE:                              '%';
  1124  PLUS:                                '+';
  1125  MINUSMINUS:                          '--';
  1126  MINUS:                               '-';
  1127  DIV:                                 'DIV';
  1128  MOD:                                 'MOD';
  1129  
  1130  
  1131  // Operators. Comparation
  1132  
  1133  EQUAL_SYMBOL:                        '=';
  1134  GREATER_SYMBOL:                      '>';
  1135  LESS_SYMBOL:                         '<';
  1136  EXCLAMATION_SYMBOL:                  '!';
  1137  
  1138  
  1139  // Operators. Bit
  1140  
  1141  BIT_NOT_OP:                          '~';
  1142  BIT_OR_OP:                           '|';
  1143  BIT_AND_OP:                          '&';
  1144  BIT_XOR_OP:                          '^';
  1145  
  1146  
  1147  // Constructors symbols
  1148  
  1149  DOT:                                 '.';
  1150  LR_BRACKET:                          '(';
  1151  RR_BRACKET:                          ')';
  1152  COMMA:                               ',';
  1153  SEMI:                                ';';
  1154  AT_SIGN:                             '@';
  1155  ZERO_DECIMAL:                        '0';
  1156  ONE_DECIMAL:                         '1';
  1157  TWO_DECIMAL:                         '2';
  1158  SINGLE_QUOTE_SYMB:                   '\'';
  1159  DOUBLE_QUOTE_SYMB:                   '"';
  1160  REVERSE_QUOTE_SYMB:                  '`';
  1161  COLON_SYMB:                          ':';
  1162  
  1163  fragment QUOTE_SYMB
  1164      : SINGLE_QUOTE_SYMB | DOUBLE_QUOTE_SYMB | REVERSE_QUOTE_SYMB
  1165      ;
  1166  
  1167  
  1168  
  1169  // Charsets
  1170  
  1171  CHARSET_REVERSE_QOUTE_STRING:        '`' CHARSET_NAME '`';
  1172  
  1173  
  1174  
  1175  // File's sizes
  1176  
  1177  
  1178  FILESIZE_LITERAL:                    DEC_DIGIT+ ('K'|'M'|'G'|'T');
  1179  
  1180  
  1181  
  1182  // Literal Primitives
  1183  
  1184  
  1185  START_NATIONAL_STRING_LITERAL:       'N' SQUOTA_STRING;
  1186  STRING_LITERAL:                      DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING;
  1187  DECIMAL_LITERAL:                     DEC_DIGIT+;
  1188  HEXADECIMAL_LITERAL:                 'X' '\'' (HEX_DIGIT HEX_DIGIT)+ '\''
  1189                                       | '0X' HEX_DIGIT+;
  1190  
  1191  REAL_LITERAL:                        (DEC_DIGIT+)? '.' DEC_DIGIT+
  1192                                       | DEC_DIGIT+ '.' EXPONENT_NUM_PART
  1193                                       | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
  1194                                       | DEC_DIGIT+ EXPONENT_NUM_PART;
  1195  NULL_SPEC_LITERAL:                   '\\' 'N';
  1196  BIT_STRING:                          BIT_STRING_L;
  1197  STRING_CHARSET_NAME:                 '_' CHARSET_NAME;
  1198  
  1199  
  1200  
  1201  
  1202  // Hack for dotID
  1203  // Prevent recognize string:         .123somelatin AS ((.123), FLOAT_LITERAL), ((somelatin), ID)
  1204  //  it must recoginze:               .123somelatin AS ((.), DOT), (123somelatin, ID)
  1205  
  1206  DOT_ID:                              '.' ID_LITERAL;
  1207  
  1208  
  1209  
  1210  // Identifiers
  1211  
  1212  ID:                                  ID_LITERAL;
  1213  // DOUBLE_QUOTE_ID:                  '"' ~'"'+ '"';
  1214  REVERSE_QUOTE_ID:                    '`' ~'`'+ '`';
  1215  STRING_USER_NAME:                    (
  1216                                         SQUOTA_STRING | DQUOTA_STRING
  1217                                         | BQUOTA_STRING | ID_LITERAL
  1218                                       ) '@'
  1219                                       (
  1220                                         SQUOTA_STRING | DQUOTA_STRING
  1221                                         | BQUOTA_STRING | ID_LITERAL
  1222                                         | IP_ADDRESS
  1223                                       );
  1224  IP_ADDRESS:                          (
  1225                                         [0-9]+ '.' [0-9.]+
  1226                                         | [0-9A-F:]+ ':' [0-9A-F:]+
  1227                                       );
  1228  LOCAL_ID:                            '@'
  1229                                  (
  1230                                    [A-Z0-9._$]+
  1231                                    | SQUOTA_STRING
  1232                                    | DQUOTA_STRING
  1233                                    | BQUOTA_STRING
  1234                                  );
  1235  GLOBAL_ID:                           '@' '@'
  1236                                  (
  1237                                    [A-Z0-9._$]+
  1238                                    | BQUOTA_STRING
  1239                                  );
  1240  
  1241  
  1242  // Fragments for Literal primitives
  1243  
  1244  fragment CHARSET_NAME:               ARMSCII8 | ASCII | BIG5 | BINARY | CP1250
  1245                                       | CP1251 | CP1256 | CP1257 | CP850
  1246                                       | CP852 | CP866 | CP932 | DEC8 | EUCJPMS
  1247                                       | EUCKR | GB2312 | GBK | GEOSTD8 | GREEK
  1248                                       | HEBREW | HP8 | KEYBCS2 | KOI8R | KOI8U
  1249                                       | LATIN1 | LATIN2 | LATIN5 | LATIN7
  1250                                       | MACCE | MACROMAN | SJIS | SWE7 | TIS620
  1251                                       | UCS2 | UJIS | UTF16 | UTF16LE | UTF32
  1252                                       | UTF8 | UTF8MB3 | UTF8MB4;
  1253  
  1254  fragment EXPONENT_NUM_PART:          'E' [-+]? DEC_DIGIT+;
  1255  fragment ID_LITERAL:                 [A-Z_$0-9\u0080-\uFFFF]*?[A-Z_$\u0080-\uFFFF]+?[A-Z_$0-9\u0080-\uFFFF]*;
  1256  fragment DQUOTA_STRING:              '"' ( '\\'. | '""' | ~('"'| '\\') )* '"';
  1257  fragment SQUOTA_STRING:              '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\'';
  1258  fragment BQUOTA_STRING:              '`' ( '\\'. | '``' | ~('`'|'\\'))* '`';
  1259  fragment HEX_DIGIT:                  [0-9A-F];
  1260  fragment DEC_DIGIT:                  [0-9];
  1261  fragment BIT_STRING_L:               'B' '\'' [01]+ '\'';
  1262  
  1263  
  1264  
  1265  // Last tokens must generate Errors
  1266  
  1267  ERROR_RECONGNIGION:                  .    -> channel(ERRORCHANNEL);