You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1364 lines
62 KiB
1364 lines
62 KiB
/* |
|
MySQL (Positive Technologies) grammar |
|
The MIT License (MIT). |
|
Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. |
|
Copyright (c) 2017, Ivan Khudyashev (IHudyashov@ptsecurity.com) |
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
|
of this software and associated documentation files (the "Software"), to deal |
|
in the Software without restriction, including without limitation the rights |
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
copies of the Software, and to permit persons to whom the Software is |
|
furnished to do so, subject to the following conditions: |
|
|
|
The above copyright notice and this permission notice shall be included in |
|
all copies or substantial portions of the Software. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
THE SOFTWARE. |
|
*/ |
|
|
|
lexer grammar MySqlLexer; |
|
|
|
options { caseInsensitive = true; } |
|
|
|
channels { MYSQLCOMMENT, ERRORCHANNEL } |
|
|
|
// SKIP |
|
|
|
SPACE: [ \t\r\n]+ -> channel(HIDDEN); |
|
SPEC_MYSQL_COMMENT: '/*!' .+? '*/' -> channel(MYSQLCOMMENT); |
|
COMMENT_INPUT: '/*' .*? '*/' -> channel(HIDDEN); |
|
LINE_COMMENT: ( |
|
('--' [ \t]* | '#') ~[\r\n]* ('\r'? '\n' | EOF) |
|
| '--' ('\r'? '\n' | EOF) |
|
) -> channel(HIDDEN); |
|
|
|
|
|
// Keywords |
|
// Common Keywords |
|
|
|
ADD: 'ADD'; |
|
ALL: 'ALL'; |
|
ALTER: 'ALTER'; |
|
ALWAYS: 'ALWAYS'; |
|
ANALYZE: 'ANALYZE'; |
|
AND: 'AND'; |
|
ARRAY: 'ARRAY'; |
|
AS: 'AS'; |
|
ASC: 'ASC'; |
|
ATTRIBUTE: 'ATTRIBUTE'; |
|
BEFORE: 'BEFORE'; |
|
BETWEEN: 'BETWEEN'; |
|
BOTH: 'BOTH'; |
|
BUCKETS: 'BUCKETS'; |
|
BY: 'BY'; |
|
CALL: 'CALL'; |
|
CASCADE: 'CASCADE'; |
|
CASE: 'CASE'; |
|
CAST: 'CAST'; |
|
CHANGE: 'CHANGE'; |
|
CHARACTER: 'CHARACTER'; |
|
CHECK: 'CHECK'; |
|
COLLATE: 'COLLATE'; |
|
COLUMN: 'COLUMN'; |
|
CONDITION: 'CONDITION'; |
|
CONSTRAINT: 'CONSTRAINT'; |
|
CONTINUE: 'CONTINUE'; |
|
CONVERT: 'CONVERT'; |
|
CREATE: 'CREATE'; |
|
CROSS: 'CROSS'; |
|
CURRENT: 'CURRENT'; |
|
CURRENT_ROLE: 'CURRENT_ROLE'; |
|
CURRENT_USER: 'CURRENT_USER'; |
|
CURSOR: 'CURSOR'; |
|
DATABASE: 'DATABASE'; |
|
DATABASES: 'DATABASES'; |
|
DECLARE: 'DECLARE'; |
|
DEFAULT: 'DEFAULT'; |
|
DELAYED: 'DELAYED'; |
|
DELETE: 'DELETE'; |
|
DESC: 'DESC'; |
|
DESCRIBE: 'DESCRIBE'; |
|
DETERMINISTIC: 'DETERMINISTIC'; |
|
DIAGNOSTICS: 'DIAGNOSTICS'; |
|
DISTINCT: 'DISTINCT'; |
|
DISTINCTROW: 'DISTINCTROW'; |
|
DROP: 'DROP'; |
|
EACH: 'EACH'; |
|
ELSE: 'ELSE'; |
|
ELSEIF: 'ELSEIF'; |
|
EMPTY: 'EMPTY'; |
|
ENCLOSED: 'ENCLOSED'; |
|
ENFORCED: 'ENFORCED'; |
|
ESCAPED: 'ESCAPED'; |
|
EXCEPT: 'EXCEPT'; |
|
EXISTS: 'EXISTS'; |
|
EXIT: 'EXIT'; |
|
EXPLAIN: 'EXPLAIN'; |
|
FALSE: 'FALSE'; |
|
FETCH: 'FETCH'; |
|
FOR: 'FOR'; |
|
FORCE: 'FORCE'; |
|
FOREIGN: 'FOREIGN'; |
|
FROM: 'FROM'; |
|
FULLTEXT: 'FULLTEXT'; |
|
GENERATED: 'GENERATED'; |
|
GET: 'GET'; |
|
GRANT: 'GRANT'; |
|
GROUP: 'GROUP'; |
|
HAVING: 'HAVING'; |
|
HIGH_PRIORITY: 'HIGH_PRIORITY'; |
|
HISTOGRAM: 'HISTOGRAM'; |
|
IF: 'IF'; |
|
IGNORE: 'IGNORE'; |
|
IGNORED: 'IGNORED'; |
|
IN: 'IN'; |
|
INDEX: 'INDEX'; |
|
INFILE: 'INFILE'; |
|
INNER: 'INNER'; |
|
INOUT: 'INOUT'; |
|
INSERT: 'INSERT'; |
|
INTERVAL: 'INTERVAL'; |
|
INTO: 'INTO'; |
|
IS: 'IS'; |
|
ITERATE: 'ITERATE'; |
|
JOIN: 'JOIN'; |
|
KEY: 'KEY'; |
|
KEYS: 'KEYS'; |
|
KILL: 'KILL'; |
|
LATERAL: 'LATERAL'; |
|
LEADING: 'LEADING'; |
|
LEAVE: 'LEAVE'; |
|
LEFT: 'LEFT'; |
|
LIKE: 'LIKE'; |
|
LIMIT: 'LIMIT'; |
|
LINEAR: 'LINEAR'; |
|
LINES: 'LINES'; |
|
LOAD: 'LOAD'; |
|
LOCK: 'LOCK'; |
|
LOCKED: 'LOCKED'; |
|
LOOP: 'LOOP'; |
|
LOW_PRIORITY: 'LOW_PRIORITY'; |
|
MASTER_BIND: 'MASTER_BIND'; |
|
MASTER_SSL_VERIFY_SERVER_CERT: 'MASTER_SSL_VERIFY_SERVER_CERT'; |
|
MATCH: 'MATCH'; |
|
MAXVALUE: 'MAXVALUE'; |
|
MINVALUE: 'MINVALUE'; |
|
MODIFIES: 'MODIFIES'; |
|
NATURAL: 'NATURAL'; |
|
NOT: 'NOT'; |
|
NO_WRITE_TO_BINLOG: 'NO_WRITE_TO_BINLOG'; |
|
NULL_LITERAL: 'NULL'; |
|
NUMBER: 'NUMBER'; |
|
ON: 'ON'; |
|
OPTIMIZE: 'OPTIMIZE'; |
|
OPTION: 'OPTION'; |
|
OPTIONAL: 'OPTIONAL'; |
|
OPTIONALLY: 'OPTIONALLY'; |
|
OR: 'OR'; |
|
ORDER: 'ORDER'; |
|
OUT: 'OUT'; |
|
OUTER: 'OUTER'; |
|
OUTFILE: 'OUTFILE'; |
|
OVER: 'OVER'; |
|
PARTITION: 'PARTITION'; |
|
PRIMARY: 'PRIMARY'; |
|
PROCEDURE: 'PROCEDURE'; |
|
PURGE: 'PURGE'; |
|
RANGE: 'RANGE'; |
|
READ: 'READ'; |
|
READS: 'READS'; |
|
REFERENCES: 'REFERENCES'; |
|
REGEXP: 'REGEXP'; |
|
RELEASE: 'RELEASE'; |
|
RENAME: 'RENAME'; |
|
REPEAT: 'REPEAT'; |
|
REPLACE: 'REPLACE'; |
|
REQUIRE: 'REQUIRE'; |
|
RESIGNAL: 'RESIGNAL'; |
|
RESTRICT: 'RESTRICT'; |
|
RETAIN: 'RETAIN'; |
|
RETURN: 'RETURN'; |
|
REVOKE: 'REVOKE'; |
|
RIGHT: 'RIGHT'; |
|
RLIKE: 'RLIKE'; |
|
SCHEMA: 'SCHEMA'; |
|
SCHEMAS: 'SCHEMAS'; |
|
SELECT: 'SELECT'; |
|
SET: 'SET'; |
|
SEPARATOR: 'SEPARATOR'; |
|
SHOW: 'SHOW'; |
|
SIGNAL: 'SIGNAL'; |
|
SKIP_: 'SKIP'; |
|
SKIP_QUERY_REWRITE: 'SKIP_QUERY_REWRITE'; |
|
SPATIAL: 'SPATIAL'; |
|
SQL: 'SQL'; |
|
SQLEXCEPTION: 'SQLEXCEPTION'; |
|
SQLSTATE: 'SQLSTATE'; |
|
SQLWARNING: 'SQLWARNING'; |
|
SQL_BIG_RESULT: 'SQL_BIG_RESULT'; |
|
SQL_CALC_FOUND_ROWS: 'SQL_CALC_FOUND_ROWS'; |
|
SQL_SMALL_RESULT: 'SQL_SMALL_RESULT'; |
|
SSL: 'SSL'; |
|
STACKED: 'STACKED'; |
|
STARTING: 'STARTING'; |
|
STATEMENT: 'STATEMENT'; |
|
STRAIGHT_JOIN: 'STRAIGHT_JOIN'; |
|
TABLE: 'TABLE'; |
|
TERMINATED: 'TERMINATED'; |
|
THEN: 'THEN'; |
|
TO: 'TO'; |
|
TRAILING: 'TRAILING'; |
|
TRIGGER: 'TRIGGER'; |
|
TRUE: 'TRUE'; |
|
UNDO: 'UNDO'; |
|
UNION: 'UNION'; |
|
UNIQUE: 'UNIQUE'; |
|
UNLOCK: 'UNLOCK'; |
|
UNSIGNED: 'UNSIGNED'; |
|
UPDATE: 'UPDATE'; |
|
USAGE: 'USAGE'; |
|
USE: 'USE'; |
|
USING: 'USING'; |
|
VALUES: 'VALUES'; |
|
WHEN: 'WHEN'; |
|
WHERE: 'WHERE'; |
|
WHILE: 'WHILE'; |
|
WITH: 'WITH'; |
|
WRITE: 'WRITE'; |
|
XOR: 'XOR'; |
|
ZEROFILL: 'ZEROFILL'; |
|
|
|
// DATA TYPE Keywords |
|
|
|
TINYINT: 'TINYINT'; |
|
SMALLINT: 'SMALLINT'; |
|
MEDIUMINT: 'MEDIUMINT'; |
|
MIDDLEINT: 'MIDDLEINT'; |
|
INT: 'INT'; |
|
INT1: 'INT1'; |
|
INT2: 'INT2'; |
|
INT3: 'INT3'; |
|
INT4: 'INT4'; |
|
INT8: 'INT8'; |
|
INTEGER: 'INTEGER'; |
|
BIGINT: 'BIGINT'; |
|
REAL: 'REAL'; |
|
DOUBLE: 'DOUBLE'; |
|
PRECISION: 'PRECISION'; |
|
FLOAT: 'FLOAT'; |
|
FLOAT4: 'FLOAT4'; |
|
FLOAT8: 'FLOAT8'; |
|
DECIMAL: 'DECIMAL'; |
|
DEC: 'DEC'; |
|
NUMERIC: 'NUMERIC'; |
|
DATE: 'DATE'; |
|
TIME: 'TIME'; |
|
TIMESTAMP: 'TIMESTAMP'; |
|
DATETIME: 'DATETIME'; |
|
YEAR: 'YEAR'; |
|
CHAR: 'CHAR'; |
|
VARCHAR: 'VARCHAR'; |
|
NVARCHAR: 'NVARCHAR'; |
|
NATIONAL: 'NATIONAL'; |
|
BINARY: 'BINARY'; |
|
VARBINARY: 'VARBINARY'; |
|
TINYBLOB: 'TINYBLOB'; |
|
BLOB: 'BLOB'; |
|
MEDIUMBLOB: 'MEDIUMBLOB'; |
|
LONG: 'LONG'; |
|
LONGBLOB: 'LONGBLOB'; |
|
TINYTEXT: 'TINYTEXT'; |
|
TEXT: 'TEXT'; |
|
MEDIUMTEXT: 'MEDIUMTEXT'; |
|
LONGTEXT: 'LONGTEXT'; |
|
ENUM: 'ENUM'; |
|
VARYING: 'VARYING'; |
|
SERIAL: 'SERIAL'; |
|
|
|
|
|
// Interval type Keywords |
|
|
|
YEAR_MONTH: 'YEAR_MONTH'; |
|
DAY_HOUR: 'DAY_HOUR'; |
|
DAY_MINUTE: 'DAY_MINUTE'; |
|
DAY_SECOND: 'DAY_SECOND'; |
|
HOUR_MINUTE: 'HOUR_MINUTE'; |
|
HOUR_SECOND: 'HOUR_SECOND'; |
|
MINUTE_SECOND: 'MINUTE_SECOND'; |
|
SECOND_MICROSECOND: 'SECOND_MICROSECOND'; |
|
MINUTE_MICROSECOND: 'MINUTE_MICROSECOND'; |
|
HOUR_MICROSECOND: 'HOUR_MICROSECOND'; |
|
DAY_MICROSECOND: 'DAY_MICROSECOND'; |
|
|
|
// JSON keywords |
|
JSON_ARRAY: 'JSON_ARRAY'; |
|
JSON_ARRAYAGG: 'JSON_ARRAYAGG'; |
|
JSON_ARRAY_APPEND: 'JSON_ARRAY_APPEND'; |
|
JSON_ARRAY_INSERT: 'JSON_ARRAY_INSERT'; |
|
JSON_CONTAINS: 'JSON_CONTAINS'; |
|
JSON_CONTAINS_PATH: 'JSON_CONTAINS_PATH'; |
|
JSON_DEPTH: 'JSON_DEPTH'; |
|
JSON_EXTRACT: 'JSON_EXTRACT'; |
|
JSON_INSERT: 'JSON_INSERT'; |
|
JSON_KEYS: 'JSON_KEYS'; |
|
JSON_LENGTH: 'JSON_LENGTH'; |
|
JSON_MERGE: 'JSON_MERGE'; |
|
JSON_MERGE_PATCH: 'JSON_MERGE_PATCH'; |
|
JSON_MERGE_PRESERVE: 'JSON_MERGE_PRESERVE'; |
|
JSON_OBJECT: 'JSON_OBJECT'; |
|
JSON_OBJECTAGG: 'JSON_OBJECTAGG'; |
|
JSON_OVERLAPS: 'JSON_OVERLAPS'; |
|
JSON_PRETTY: 'JSON_PRETTY'; |
|
JSON_QUOTE: 'JSON_QUOTE'; |
|
JSON_REMOVE: 'JSON_REMOVE'; |
|
JSON_REPLACE: 'JSON_REPLACE'; |
|
JSON_SCHEMA_VALID: 'JSON_SCHEMA_VALID'; |
|
JSON_SCHEMA_VALIDATION_REPORT: 'JSON_SCHEMA_VALIDATION_REPORT'; |
|
JSON_SEARCH: 'JSON_SEARCH'; |
|
JSON_SET: 'JSON_SET'; |
|
JSON_STORAGE_FREE: 'JSON_STORAGE_FREE'; |
|
JSON_STORAGE_SIZE: 'JSON_STORAGE_SIZE'; |
|
JSON_TABLE: 'JSON_TABLE'; |
|
JSON_TYPE: 'JSON_TYPE'; |
|
JSON_UNQUOTE: 'JSON_UNQUOTE'; |
|
JSON_VALID: 'JSON_VALID'; |
|
JSON_VALUE: 'JSON_VALUE'; |
|
NESTED: 'NESTED'; |
|
ORDINALITY: 'ORDINALITY'; |
|
PATH: 'PATH'; |
|
|
|
// Group function Keywords |
|
|
|
AVG: 'AVG'; |
|
BIT_AND: 'BIT_AND'; |
|
BIT_OR: 'BIT_OR'; |
|
BIT_XOR: 'BIT_XOR'; |
|
COUNT: 'COUNT'; |
|
CUME_DIST: 'CUME_DIST'; |
|
DENSE_RANK: 'DENSE_RANK'; |
|
FIRST_VALUE: 'FIRST_VALUE'; |
|
GROUP_CONCAT: 'GROUP_CONCAT'; |
|
LAG: 'LAG'; |
|
LAST_VALUE: 'LAST_VALUE'; |
|
LEAD: 'LEAD'; |
|
MAX: 'MAX'; |
|
MIN: 'MIN'; |
|
NTILE: 'NTILE'; |
|
NTH_VALUE: 'NTH_VALUE'; |
|
PERCENT_RANK: 'PERCENT_RANK'; |
|
RANK: 'RANK'; |
|
ROW_NUMBER: 'ROW_NUMBER'; |
|
STD: 'STD'; |
|
STDDEV: 'STDDEV'; |
|
STDDEV_POP: 'STDDEV_POP'; |
|
STDDEV_SAMP: 'STDDEV_SAMP'; |
|
SUM: 'SUM'; |
|
VAR_POP: 'VAR_POP'; |
|
VAR_SAMP: 'VAR_SAMP'; |
|
VARIANCE: 'VARIANCE'; |
|
|
|
// Common function Keywords |
|
|
|
CURRENT_DATE: 'CURRENT_DATE'; |
|
CURRENT_TIME: 'CURRENT_TIME'; |
|
CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'; |
|
LOCALTIME: 'LOCALTIME'; |
|
CURDATE: 'CURDATE'; |
|
CURTIME: 'CURTIME'; |
|
DATE_ADD: 'DATE_ADD'; |
|
DATE_SUB: 'DATE_SUB'; |
|
EXTRACT: 'EXTRACT'; |
|
LOCALTIMESTAMP: 'LOCALTIMESTAMP'; |
|
NOW: 'NOW'; |
|
POSITION: 'POSITION'; |
|
SUBSTR: 'SUBSTR'; |
|
SUBSTRING: 'SUBSTRING'; |
|
SYSDATE: 'SYSDATE'; |
|
TRIM: 'TRIM'; |
|
UTC_DATE: 'UTC_DATE'; |
|
UTC_TIME: 'UTC_TIME'; |
|
UTC_TIMESTAMP: 'UTC_TIMESTAMP'; |
|
|
|
// Keywords, but can be ID |
|
// Common Keywords, but can be ID |
|
|
|
ACCOUNT: 'ACCOUNT'; |
|
ACTION: 'ACTION'; |
|
AFTER: 'AFTER'; |
|
AGGREGATE: 'AGGREGATE'; |
|
ALGORITHM: 'ALGORITHM'; |
|
ANY: 'ANY'; |
|
AT: 'AT'; |
|
AUTHORS: 'AUTHORS'; |
|
AUTOCOMMIT: 'AUTOCOMMIT'; |
|
AUTOEXTEND_SIZE: 'AUTOEXTEND_SIZE'; |
|
AUTO_INCREMENT: 'AUTO_INCREMENT'; |
|
AVG_ROW_LENGTH: 'AVG_ROW_LENGTH'; |
|
BEGIN: 'BEGIN'; |
|
BINLOG: 'BINLOG'; |
|
BIT: 'BIT'; |
|
BLOCK: 'BLOCK'; |
|
BOOL: 'BOOL'; |
|
BOOLEAN: 'BOOLEAN'; |
|
BTREE: 'BTREE'; |
|
CACHE: 'CACHE'; |
|
CASCADED: 'CASCADED'; |
|
CHAIN: 'CHAIN'; |
|
CHANGED: 'CHANGED'; |
|
CHANNEL: 'CHANNEL'; |
|
CHECKSUM: 'CHECKSUM'; |
|
PAGE_CHECKSUM: 'PAGE_CHECKSUM'; |
|
CIPHER: 'CIPHER'; |
|
CLASS_ORIGIN: 'CLASS_ORIGIN'; |
|
CLIENT: 'CLIENT'; |
|
CLOSE: 'CLOSE'; |
|
CLUSTERING: 'CLUSTERING'; |
|
COALESCE: 'COALESCE'; |
|
CODE: 'CODE'; |
|
COLUMNS: 'COLUMNS'; |
|
COLUMN_FORMAT: 'COLUMN_FORMAT'; |
|
COLUMN_NAME: 'COLUMN_NAME'; |
|
COMMENT: 'COMMENT'; |
|
COMMIT: 'COMMIT'; |
|
COMPACT: 'COMPACT'; |
|
COMPLETION: 'COMPLETION'; |
|
COMPRESSED: 'COMPRESSED'; |
|
COMPRESSION: 'COMPRESSION' | QUOTE_SYMB? 'COMPRESSION' QUOTE_SYMB?; |
|
CONCURRENT: 'CONCURRENT'; |
|
CONNECT: 'CONNECT'; |
|
CONNECTION: 'CONNECTION'; |
|
CONSISTENT: 'CONSISTENT'; |
|
CONSTRAINT_CATALOG: 'CONSTRAINT_CATALOG'; |
|
CONSTRAINT_SCHEMA: 'CONSTRAINT_SCHEMA'; |
|
CONSTRAINT_NAME: 'CONSTRAINT_NAME'; |
|
CONTAINS: 'CONTAINS'; |
|
CONTEXT: 'CONTEXT'; |
|
CONTRIBUTORS: 'CONTRIBUTORS'; |
|
COPY: 'COPY'; |
|
CPU: 'CPU'; |
|
CYCLE: 'CYCLE'; |
|
CURSOR_NAME: 'CURSOR_NAME'; |
|
DATA: 'DATA'; |
|
DATAFILE: 'DATAFILE'; |
|
DEALLOCATE: 'DEALLOCATE'; |
|
DEFAULT_AUTH: 'DEFAULT_AUTH'; |
|
DEFINER: 'DEFINER'; |
|
DELAY_KEY_WRITE: 'DELAY_KEY_WRITE'; |
|
DES_KEY_FILE: 'DES_KEY_FILE'; |
|
DIRECTORY: 'DIRECTORY'; |
|
DISABLE: 'DISABLE'; |
|
DISCARD: 'DISCARD'; |
|
DISK: 'DISK'; |
|
DO: 'DO'; |
|
DUMPFILE: 'DUMPFILE'; |
|
DUPLICATE: 'DUPLICATE'; |
|
DYNAMIC: 'DYNAMIC'; |
|
ENABLE: 'ENABLE'; |
|
ENCRYPTED: 'ENCRYPTED'; |
|
ENCRYPTION: 'ENCRYPTION'; |
|
ENCRYPTION_KEY_ID: 'ENCRYPTION_KEY_ID'; |
|
END: 'END'; |
|
ENDS: 'ENDS'; |
|
ENGINE: 'ENGINE'; |
|
ENGINES: 'ENGINES'; |
|
ERROR: 'ERROR'; |
|
ERRORS: 'ERRORS'; |
|
ESCAPE: 'ESCAPE'; |
|
EVEN: 'EVEN'; |
|
EVENT: 'EVENT'; |
|
EVENTS: 'EVENTS'; |
|
EVERY: 'EVERY'; |
|
EXCHANGE: 'EXCHANGE'; |
|
EXCLUSIVE: 'EXCLUSIVE'; |
|
EXPIRE: 'EXPIRE'; |
|
EXPORT: 'EXPORT'; |
|
EXTENDED: 'EXTENDED'; |
|
EXTENT_SIZE: 'EXTENT_SIZE'; |
|
FAILED_LOGIN_ATTEMPTS: 'FAILED_LOGIN_ATTEMPTS'; |
|
FAST: 'FAST'; |
|
FAULTS: 'FAULTS'; |
|
FIELDS: 'FIELDS'; |
|
FILE_BLOCK_SIZE: 'FILE_BLOCK_SIZE'; |
|
FILTER: 'FILTER'; |
|
FIRST: 'FIRST'; |
|
FIXED: 'FIXED'; |
|
FLUSH: 'FLUSH'; |
|
FOLLOWING: 'FOLLOWING'; |
|
FOLLOWS: 'FOLLOWS'; |
|
FOUND: 'FOUND'; |
|
FULL: 'FULL'; |
|
FUNCTION: 'FUNCTION'; |
|
GENERAL: 'GENERAL'; |
|
GLOBAL: 'GLOBAL'; |
|
GRANTS: 'GRANTS'; |
|
GROUP_REPLICATION: 'GROUP_REPLICATION'; |
|
HANDLER: 'HANDLER'; |
|
HASH: 'HASH'; |
|
HELP: 'HELP'; |
|
HISTORY: 'HISTORY'; |
|
HOST: 'HOST'; |
|
HOSTS: 'HOSTS'; |
|
IDENTIFIED: 'IDENTIFIED'; |
|
IGNORE_SERVER_IDS: 'IGNORE_SERVER_IDS'; |
|
IMPORT: 'IMPORT'; |
|
INCREMENT: 'INCREMENT'; |
|
INDEXES: 'INDEXES'; |
|
INITIAL_SIZE: 'INITIAL_SIZE'; |
|
INPLACE: 'INPLACE'; |
|
INSERT_METHOD: 'INSERT_METHOD'; |
|
INSTALL: 'INSTALL'; |
|
INSTANCE: 'INSTANCE'; |
|
INSTANT: 'INSTANT'; |
|
INVISIBLE: 'INVISIBLE'; |
|
INVOKER: 'INVOKER'; |
|
IO: 'IO'; |
|
IO_THREAD: 'IO_THREAD'; |
|
IPC: 'IPC'; |
|
ISOLATION: 'ISOLATION'; |
|
ISSUER: 'ISSUER'; |
|
JSON: 'JSON'; |
|
KEY_BLOCK_SIZE: 'KEY_BLOCK_SIZE'; |
|
LANGUAGE: 'LANGUAGE'; |
|
LAST: 'LAST'; |
|
LEAVES: 'LEAVES'; |
|
LESS: 'LESS'; |
|
LEVEL: 'LEVEL'; |
|
LIST: 'LIST'; |
|
LOCAL: 'LOCAL'; |
|
LOGFILE: 'LOGFILE'; |
|
LOGS: 'LOGS'; |
|
MASTER: 'MASTER'; |
|
MASTER_AUTO_POSITION: 'MASTER_AUTO_POSITION'; |
|
MASTER_CONNECT_RETRY: 'MASTER_CONNECT_RETRY'; |
|
MASTER_DELAY: 'MASTER_DELAY'; |
|
MASTER_HEARTBEAT_PERIOD: 'MASTER_HEARTBEAT_PERIOD'; |
|
MASTER_HOST: 'MASTER_HOST'; |
|
MASTER_LOG_FILE: 'MASTER_LOG_FILE'; |
|
MASTER_LOG_POS: 'MASTER_LOG_POS'; |
|
MASTER_PASSWORD: 'MASTER_PASSWORD'; |
|
MASTER_PORT: 'MASTER_PORT'; |
|
MASTER_RETRY_COUNT: 'MASTER_RETRY_COUNT'; |
|
MASTER_SSL: 'MASTER_SSL'; |
|
MASTER_SSL_CA: 'MASTER_SSL_CA'; |
|
MASTER_SSL_CAPATH: 'MASTER_SSL_CAPATH'; |
|
MASTER_SSL_CERT: 'MASTER_SSL_CERT'; |
|
MASTER_SSL_CIPHER: 'MASTER_SSL_CIPHER'; |
|
MASTER_SSL_CRL: 'MASTER_SSL_CRL'; |
|
MASTER_SSL_CRLPATH: 'MASTER_SSL_CRLPATH'; |
|
MASTER_SSL_KEY: 'MASTER_SSL_KEY'; |
|
MASTER_TLS_VERSION: 'MASTER_TLS_VERSION'; |
|
MASTER_USER: 'MASTER_USER'; |
|
MAX_CONNECTIONS_PER_HOUR: 'MAX_CONNECTIONS_PER_HOUR'; |
|
MAX_QUERIES_PER_HOUR: 'MAX_QUERIES_PER_HOUR'; |
|
MAX_ROWS: 'MAX_ROWS'; |
|
MAX_SIZE: 'MAX_SIZE'; |
|
MAX_UPDATES_PER_HOUR: 'MAX_UPDATES_PER_HOUR'; |
|
MAX_USER_CONNECTIONS: 'MAX_USER_CONNECTIONS'; |
|
MEDIUM: 'MEDIUM'; |
|
MEMBER: 'MEMBER'; |
|
MERGE: 'MERGE'; |
|
MESSAGE_TEXT: 'MESSAGE_TEXT'; |
|
MID: 'MID'; |
|
MIGRATE: 'MIGRATE'; |
|
MIN_ROWS: 'MIN_ROWS'; |
|
MODE: 'MODE'; |
|
MODIFY: 'MODIFY'; |
|
MUTEX: 'MUTEX'; |
|
MYSQL: 'MYSQL'; |
|
MYSQL_ERRNO: 'MYSQL_ERRNO'; |
|
NAME: 'NAME'; |
|
NAMES: 'NAMES'; |
|
NCHAR: 'NCHAR'; |
|
NEVER: 'NEVER'; |
|
NEXT: 'NEXT'; |
|
NO: 'NO'; |
|
NOCACHE: 'NOCACHE'; |
|
NOCOPY: 'NOCOPY'; |
|
NOCYCLE: 'NOCYCLE'; |
|
NOMAXVALUE: 'NOMAXVALUE'; |
|
NOMINVALUE: 'NOMINVALUE'; |
|
NOWAIT: 'NOWAIT'; |
|
NODEGROUP: 'NODEGROUP'; |
|
NONE: 'NONE'; |
|
ODBC: 'ODBC'; |
|
OFFLINE: 'OFFLINE'; |
|
OFFSET: 'OFFSET'; |
|
OF: 'OF'; |
|
OJ: 'OJ'; |
|
OLD_PASSWORD: 'OLD_PASSWORD'; |
|
ONE: 'ONE'; |
|
ONLINE: 'ONLINE'; |
|
ONLY: 'ONLY'; |
|
OPEN: 'OPEN'; |
|
OPTIMIZER_COSTS: 'OPTIMIZER_COSTS'; |
|
OPTIONS: 'OPTIONS'; |
|
OWNER: 'OWNER'; |
|
PACK_KEYS: 'PACK_KEYS'; |
|
PAGE: 'PAGE'; |
|
PAGE_COMPRESSED: 'PAGE_COMPRESSED'; |
|
PAGE_COMPRESSION_LEVEL: 'PAGE_COMPRESSION_LEVEL'; |
|
PARSER: 'PARSER'; |
|
PARTIAL: 'PARTIAL'; |
|
PARTITIONING: 'PARTITIONING'; |
|
PARTITIONS: 'PARTITIONS'; |
|
PASSWORD: 'PASSWORD'; |
|
PASSWORD_LOCK_TIME: 'PASSWORD_LOCK_TIME'; |
|
PHASE: 'PHASE'; |
|
PLUGIN: 'PLUGIN'; |
|
PLUGIN_DIR: 'PLUGIN_DIR'; |
|
PLUGINS: 'PLUGINS'; |
|
PORT: 'PORT'; |
|
PRECEDES: 'PRECEDES'; |
|
PRECEDING: 'PRECEDING'; |
|
PREPARE: 'PREPARE'; |
|
PRESERVE: 'PRESERVE'; |
|
PREV: 'PREV'; |
|
PROCESSLIST: 'PROCESSLIST'; |
|
PROFILE: 'PROFILE'; |
|
PROFILES: 'PROFILES'; |
|
PROXY: 'PROXY'; |
|
QUERY: 'QUERY'; |
|
QUICK: 'QUICK'; |
|
REBUILD: 'REBUILD'; |
|
RECOVER: 'RECOVER'; |
|
RECURSIVE: 'RECURSIVE'; |
|
REDO_BUFFER_SIZE: 'REDO_BUFFER_SIZE'; |
|
REDUNDANT: 'REDUNDANT'; |
|
RELAY: 'RELAY'; |
|
RELAY_LOG_FILE: 'RELAY_LOG_FILE'; |
|
RELAY_LOG_POS: 'RELAY_LOG_POS'; |
|
RELAYLOG: 'RELAYLOG'; |
|
REMOVE: 'REMOVE'; |
|
REORGANIZE: 'REORGANIZE'; |
|
REPAIR: 'REPAIR'; |
|
REPLICATE_DO_DB: 'REPLICATE_DO_DB'; |
|
REPLICATE_DO_TABLE: 'REPLICATE_DO_TABLE'; |
|
REPLICATE_IGNORE_DB: 'REPLICATE_IGNORE_DB'; |
|
REPLICATE_IGNORE_TABLE: 'REPLICATE_IGNORE_TABLE'; |
|
REPLICATE_REWRITE_DB: 'REPLICATE_REWRITE_DB'; |
|
REPLICATE_WILD_DO_TABLE: 'REPLICATE_WILD_DO_TABLE'; |
|
REPLICATE_WILD_IGNORE_TABLE: 'REPLICATE_WILD_IGNORE_TABLE'; |
|
REPLICATION: 'REPLICATION'; |
|
RESET: 'RESET'; |
|
RESTART: 'RESTART'; |
|
RESUME: 'RESUME'; |
|
RETURNED_SQLSTATE: 'RETURNED_SQLSTATE'; |
|
RETURNING: 'RETURNING'; |
|
RETURNS: 'RETURNS'; |
|
REUSE: 'REUSE'; |
|
ROLE: 'ROLE'; |
|
ROLLBACK: 'ROLLBACK'; |
|
ROLLUP: 'ROLLUP'; |
|
ROTATE: 'ROTATE'; |
|
ROW: 'ROW'; |
|
ROWS: 'ROWS'; |
|
ROW_FORMAT: 'ROW_FORMAT'; |
|
RTREE: 'RTREE'; |
|
SAVEPOINT: 'SAVEPOINT'; |
|
SCHEDULE: 'SCHEDULE'; |
|
SECURITY: 'SECURITY'; |
|
SEQUENCE: 'SEQUENCE'; |
|
SERVER: 'SERVER'; |
|
SESSION: 'SESSION'; |
|
SHARE: 'SHARE'; |
|
SHARED: 'SHARED'; |
|
SIGNED: 'SIGNED'; |
|
SIMPLE: 'SIMPLE'; |
|
SLAVE: 'SLAVE'; |
|
SLOW: 'SLOW'; |
|
SNAPSHOT: 'SNAPSHOT'; |
|
SOCKET: 'SOCKET'; |
|
SOME: 'SOME'; |
|
SONAME: 'SONAME'; |
|
SOUNDS: 'SOUNDS'; |
|
SOURCE: 'SOURCE'; |
|
SQL_AFTER_GTIDS: 'SQL_AFTER_GTIDS'; |
|
SQL_AFTER_MTS_GAPS: 'SQL_AFTER_MTS_GAPS'; |
|
SQL_BEFORE_GTIDS: 'SQL_BEFORE_GTIDS'; |
|
SQL_BUFFER_RESULT: 'SQL_BUFFER_RESULT'; |
|
SQL_CACHE: 'SQL_CACHE'; |
|
SQL_NO_CACHE: 'SQL_NO_CACHE'; |
|
SQL_THREAD: 'SQL_THREAD'; |
|
START: 'START'; |
|
STARTS: 'STARTS'; |
|
STATS_AUTO_RECALC: 'STATS_AUTO_RECALC'; |
|
STATS_PERSISTENT: 'STATS_PERSISTENT'; |
|
STATS_SAMPLE_PAGES: 'STATS_SAMPLE_PAGES'; |
|
STATUS: 'STATUS'; |
|
STOP: 'STOP'; |
|
STORAGE: 'STORAGE'; |
|
STORED: 'STORED'; |
|
STRING: 'STRING'; |
|
SUBCLASS_ORIGIN: 'SUBCLASS_ORIGIN'; |
|
SUBJECT: 'SUBJECT'; |
|
SUBPARTITION: 'SUBPARTITION'; |
|
SUBPARTITIONS: 'SUBPARTITIONS'; |
|
SUSPEND: 'SUSPEND'; |
|
SWAPS: 'SWAPS'; |
|
SWITCHES: 'SWITCHES'; |
|
TABLE_NAME: 'TABLE_NAME'; |
|
TABLESPACE: 'TABLESPACE'; |
|
TABLE_TYPE: 'TABLE_TYPE'; |
|
TEMPORARY: 'TEMPORARY'; |
|
TEMPTABLE: 'TEMPTABLE'; |
|
THAN: 'THAN'; |
|
TRADITIONAL: 'TRADITIONAL'; |
|
TRANSACTION: 'TRANSACTION'; |
|
TRANSACTIONAL: 'TRANSACTIONAL'; |
|
TRIGGERS: 'TRIGGERS'; |
|
TRUNCATE: 'TRUNCATE'; |
|
UNBOUNDED: 'UNBOUNDED'; |
|
UNDEFINED: 'UNDEFINED'; |
|
UNDOFILE: 'UNDOFILE'; |
|
UNDO_BUFFER_SIZE: 'UNDO_BUFFER_SIZE'; |
|
UNINSTALL: 'UNINSTALL'; |
|
UNKNOWN: 'UNKNOWN'; |
|
UNTIL: 'UNTIL'; |
|
UPGRADE: 'UPGRADE'; |
|
USER: 'USER'; |
|
USE_FRM: 'USE_FRM'; |
|
USER_RESOURCES: 'USER_RESOURCES'; |
|
VALIDATION: 'VALIDATION'; |
|
VALUE: 'VALUE'; |
|
VARIABLES: 'VARIABLES'; |
|
VIEW: 'VIEW'; |
|
VIRTUAL: 'VIRTUAL'; |
|
VISIBLE: 'VISIBLE'; |
|
WAIT: 'WAIT'; |
|
WARNINGS: 'WARNINGS'; |
|
WINDOW: 'WINDOW'; |
|
WITHOUT: 'WITHOUT'; |
|
WORK: 'WORK'; |
|
WRAPPER: 'WRAPPER'; |
|
X509: 'X509'; |
|
XA: 'XA'; |
|
XML: 'XML'; |
|
YES: 'YES'; |
|
|
|
// Date format Keywords |
|
|
|
EUR: 'EUR'; |
|
USA: 'USA'; |
|
JIS: 'JIS'; |
|
ISO: 'ISO'; |
|
INTERNAL: 'INTERNAL'; |
|
|
|
|
|
// Interval type Keywords |
|
|
|
QUARTER: 'QUARTER'; |
|
MONTH: 'MONTH'; |
|
DAY: 'DAY'; |
|
HOUR: 'HOUR'; |
|
MINUTE: 'MINUTE'; |
|
WEEK: 'WEEK'; |
|
SECOND: 'SECOND'; |
|
MICROSECOND: 'MICROSECOND'; |
|
|
|
|
|
// PRIVILEGES |
|
|
|
ADMIN: 'ADMIN'; |
|
APPLICATION_PASSWORD_ADMIN: 'APPLICATION_PASSWORD_ADMIN'; |
|
AUDIT_ABORT_EXEMPT: 'AUDIT_ABORT_EXEMPT'; |
|
AUDIT_ADMIN: 'AUDIT_ADMIN'; |
|
AUTHENTICATION_POLICY_ADMIN: 'AUTHENTICATION_POLICY_ADMIN'; |
|
BACKUP_ADMIN: 'BACKUP_ADMIN'; |
|
BINLOG_ADMIN: 'BINLOG_ADMIN'; |
|
BINLOG_ENCRYPTION_ADMIN: 'BINLOG_ENCRYPTION_ADMIN'; |
|
CLONE_ADMIN: 'CLONE_ADMIN'; |
|
CONNECTION_ADMIN: 'CONNECTION_ADMIN'; |
|
ENCRYPTION_KEY_ADMIN: 'ENCRYPTION_KEY_ADMIN'; |
|
EXECUTE: 'EXECUTE'; |
|
FILE: 'FILE'; |
|
FIREWALL_ADMIN: 'FIREWALL_ADMIN'; |
|
FIREWALL_EXEMPT: 'FIREWALL_EXEMPT'; |
|
FIREWALL_USER: 'FIREWALL_USER'; |
|
FLUSH_OPTIMIZER_COSTS: 'FLUSH_OPTIMIZER_COSTS'; |
|
FLUSH_STATUS: 'FLUSH_STATUS'; |
|
FLUSH_TABLES: 'FLUSH_TABLES'; |
|
FLUSH_USER_RESOURCES: 'FLUSH_USER_RESOURCES'; |
|
GROUP_REPLICATION_ADMIN: 'GROUP_REPLICATION_ADMIN'; |
|
INNODB_REDO_LOG_ARCHIVE: 'INNODB_REDO_LOG_ARCHIVE'; |
|
INNODB_REDO_LOG_ENABLE: 'INNODB_REDO_LOG_ENABLE'; |
|
INVOKE: 'INVOKE'; |
|
LAMBDA: 'LAMBDA'; |
|
NDB_STORED_USER: 'NDB_STORED_USER'; |
|
PASSWORDLESS_USER_ADMIN: 'PASSWORDLESS_USER_ADMIN'; |
|
PERSIST_RO_VARIABLES_ADMIN: 'PERSIST_RO_VARIABLES_ADMIN'; |
|
PRIVILEGES: 'PRIVILEGES'; |
|
PROCESS: 'PROCESS'; |
|
RELOAD: 'RELOAD'; |
|
REPLICATION_APPLIER: 'REPLICATION_APPLIER'; |
|
REPLICATION_SLAVE_ADMIN: 'REPLICATION_SLAVE_ADMIN'; |
|
RESOURCE_GROUP_ADMIN: 'RESOURCE_GROUP_ADMIN'; |
|
RESOURCE_GROUP_USER: 'RESOURCE_GROUP_USER'; |
|
ROLE_ADMIN: 'ROLE_ADMIN'; |
|
ROUTINE: 'ROUTINE'; |
|
S3: 'S3'; |
|
SERVICE_CONNECTION_ADMIN: 'SERVICE_CONNECTION_ADMIN'; |
|
SESSION_VARIABLES_ADMIN: QUOTE_SYMB? 'SESSION_VARIABLES_ADMIN' QUOTE_SYMB?; |
|
SET_USER_ID: 'SET_USER_ID'; |
|
SHOW_ROUTINE: 'SHOW_ROUTINE'; |
|
SHUTDOWN: 'SHUTDOWN'; |
|
SUPER: 'SUPER'; |
|
SYSTEM_VARIABLES_ADMIN: 'SYSTEM_VARIABLES_ADMIN'; |
|
TABLES: 'TABLES'; |
|
TABLE_ENCRYPTION_ADMIN: 'TABLE_ENCRYPTION_ADMIN'; |
|
VERSION_TOKEN_ADMIN: 'VERSION_TOKEN_ADMIN'; |
|
XA_RECOVER_ADMIN: 'XA_RECOVER_ADMIN'; |
|
|
|
|
|
// Charsets |
|
|
|
ARMSCII8: 'ARMSCII8'; |
|
ASCII: 'ASCII'; |
|
BIG5: 'BIG5'; |
|
CP1250: 'CP1250'; |
|
CP1251: 'CP1251'; |
|
CP1256: 'CP1256'; |
|
CP1257: 'CP1257'; |
|
CP850: 'CP850'; |
|
CP852: 'CP852'; |
|
CP866: 'CP866'; |
|
CP932: 'CP932'; |
|
DEC8: 'DEC8'; |
|
EUCJPMS: 'EUCJPMS'; |
|
EUCKR: 'EUCKR'; |
|
GB18030: 'GB18030'; |
|
GB2312: 'GB2312'; |
|
GBK: 'GBK'; |
|
GEOSTD8: 'GEOSTD8'; |
|
GREEK: 'GREEK'; |
|
HEBREW: 'HEBREW'; |
|
HP8: 'HP8'; |
|
KEYBCS2: 'KEYBCS2'; |
|
KOI8R: 'KOI8R'; |
|
KOI8U: 'KOI8U'; |
|
LATIN1: 'LATIN1'; |
|
LATIN2: 'LATIN2'; |
|
LATIN5: 'LATIN5'; |
|
LATIN7: 'LATIN7'; |
|
MACCE: 'MACCE'; |
|
MACROMAN: 'MACROMAN'; |
|
SJIS: 'SJIS'; |
|
SWE7: 'SWE7'; |
|
TIS620: 'TIS620'; |
|
UCS2: 'UCS2'; |
|
UJIS: 'UJIS'; |
|
UTF16: 'UTF16'; |
|
UTF16LE: 'UTF16LE'; |
|
UTF32: 'UTF32'; |
|
UTF8: 'UTF8'; |
|
UTF8MB3: 'UTF8MB3'; |
|
UTF8MB4: 'UTF8MB4'; |
|
|
|
|
|
// DB Engines |
|
|
|
ARCHIVE: 'ARCHIVE'; |
|
BLACKHOLE: 'BLACKHOLE'; |
|
CSV: 'CSV'; |
|
FEDERATED: 'FEDERATED'; |
|
INNODB: 'INNODB'; |
|
MEMORY: 'MEMORY'; |
|
MRG_MYISAM: 'MRG_MYISAM'; |
|
MYISAM: 'MYISAM'; |
|
NDB: 'NDB'; |
|
NDBCLUSTER: 'NDBCLUSTER'; |
|
PERFORMANCE_SCHEMA: 'PERFORMANCE_SCHEMA'; |
|
TOKUDB: 'TOKUDB'; |
|
|
|
|
|
// Transaction Levels |
|
|
|
REPEATABLE: 'REPEATABLE'; |
|
COMMITTED: 'COMMITTED'; |
|
UNCOMMITTED: 'UNCOMMITTED'; |
|
SERIALIZABLE: 'SERIALIZABLE'; |
|
|
|
|
|
// Spatial data types |
|
|
|
GEOMETRYCOLLECTION: 'GEOMETRYCOLLECTION'; |
|
GEOMCOLLECTION: 'GEOMCOLLECTION'; |
|
GEOMETRY: 'GEOMETRY'; |
|
LINESTRING: 'LINESTRING'; |
|
MULTILINESTRING: 'MULTILINESTRING'; |
|
MULTIPOINT: 'MULTIPOINT'; |
|
MULTIPOLYGON: 'MULTIPOLYGON'; |
|
POINT: 'POINT'; |
|
POLYGON: 'POLYGON'; |
|
|
|
|
|
// Common function names |
|
|
|
ABS: 'ABS'; |
|
ACOS: 'ACOS'; |
|
ADDDATE: 'ADDDATE'; |
|
ADDTIME: 'ADDTIME'; |
|
AES_DECRYPT: 'AES_DECRYPT'; |
|
AES_ENCRYPT: 'AES_ENCRYPT'; |
|
AREA: 'AREA'; |
|
ASBINARY: 'ASBINARY'; |
|
ASIN: 'ASIN'; |
|
ASTEXT: 'ASTEXT'; |
|
ASWKB: 'ASWKB'; |
|
ASWKT: 'ASWKT'; |
|
ASYMMETRIC_DECRYPT: 'ASYMMETRIC_DECRYPT'; |
|
ASYMMETRIC_DERIVE: 'ASYMMETRIC_DERIVE'; |
|
ASYMMETRIC_ENCRYPT: 'ASYMMETRIC_ENCRYPT'; |
|
ASYMMETRIC_SIGN: 'ASYMMETRIC_SIGN'; |
|
ASYMMETRIC_VERIFY: 'ASYMMETRIC_VERIFY'; |
|
ATAN: 'ATAN'; |
|
ATAN2: 'ATAN2'; |
|
BENCHMARK: 'BENCHMARK'; |
|
BIN: 'BIN'; |
|
BIT_COUNT: 'BIT_COUNT'; |
|
BIT_LENGTH: 'BIT_LENGTH'; |
|
BUFFER: 'BUFFER'; |
|
CATALOG_NAME: 'CATALOG_NAME'; |
|
CEIL: 'CEIL'; |
|
CEILING: 'CEILING'; |
|
CENTROID: 'CENTROID'; |
|
CHARACTER_LENGTH: 'CHARACTER_LENGTH'; |
|
CHARSET: 'CHARSET'; |
|
CHAR_LENGTH: 'CHAR_LENGTH'; |
|
COERCIBILITY: 'COERCIBILITY'; |
|
COLLATION: 'COLLATION'; |
|
COMPRESS: 'COMPRESS'; |
|
CONCAT: 'CONCAT'; |
|
CONCAT_WS: 'CONCAT_WS'; |
|
CONNECTION_ID: 'CONNECTION_ID'; |
|
CONV: 'CONV'; |
|
CONVERT_TZ: 'CONVERT_TZ'; |
|
COS: 'COS'; |
|
COT: 'COT'; |
|
CRC32: 'CRC32'; |
|
CREATE_ASYMMETRIC_PRIV_KEY: 'CREATE_ASYMMETRIC_PRIV_KEY'; |
|
CREATE_ASYMMETRIC_PUB_KEY: 'CREATE_ASYMMETRIC_PUB_KEY'; |
|
CREATE_DH_PARAMETERS: 'CREATE_DH_PARAMETERS'; |
|
CREATE_DIGEST: 'CREATE_DIGEST'; |
|
CROSSES: 'CROSSES'; |
|
DATEDIFF: 'DATEDIFF'; |
|
DATE_FORMAT: 'DATE_FORMAT'; |
|
DAYNAME: 'DAYNAME'; |
|
DAYOFMONTH: 'DAYOFMONTH'; |
|
DAYOFWEEK: 'DAYOFWEEK'; |
|
DAYOFYEAR: 'DAYOFYEAR'; |
|
DECODE: 'DECODE'; |
|
DEGREES: 'DEGREES'; |
|
DES_DECRYPT: 'DES_DECRYPT'; |
|
DES_ENCRYPT: 'DES_ENCRYPT'; |
|
DIMENSION: 'DIMENSION'; |
|
DISJOINT: 'DISJOINT'; |
|
ELT: 'ELT'; |
|
ENCODE: 'ENCODE'; |
|
ENCRYPT: 'ENCRYPT'; |
|
ENDPOINT: 'ENDPOINT'; |
|
ENGINE_ATTRIBUTE: 'ENGINE_ATTRIBUTE'; |
|
ENVELOPE: 'ENVELOPE'; |
|
EQUALS: 'EQUALS'; |
|
EXP: 'EXP'; |
|
EXPORT_SET: 'EXPORT_SET'; |
|
EXTERIORRING: 'EXTERIORRING'; |
|
EXTRACTVALUE: 'EXTRACTVALUE'; |
|
FIELD: 'FIELD'; |
|
FIND_IN_SET: 'FIND_IN_SET'; |
|
FLOOR: 'FLOOR'; |
|
FORMAT: 'FORMAT'; |
|
FOUND_ROWS: 'FOUND_ROWS'; |
|
FROM_BASE64: 'FROM_BASE64'; |
|
FROM_DAYS: 'FROM_DAYS'; |
|
FROM_UNIXTIME: 'FROM_UNIXTIME'; |
|
GEOMCOLLFROMTEXT: 'GEOMCOLLFROMTEXT'; |
|
GEOMCOLLFROMWKB: 'GEOMCOLLFROMWKB'; |
|
GEOMETRYCOLLECTIONFROMTEXT: 'GEOMETRYCOLLECTIONFROMTEXT'; |
|
GEOMETRYCOLLECTIONFROMWKB: 'GEOMETRYCOLLECTIONFROMWKB'; |
|
GEOMETRYFROMTEXT: 'GEOMETRYFROMTEXT'; |
|
GEOMETRYFROMWKB: 'GEOMETRYFROMWKB'; |
|
GEOMETRYN: 'GEOMETRYN'; |
|
GEOMETRYTYPE: 'GEOMETRYTYPE'; |
|
GEOMFROMTEXT: 'GEOMFROMTEXT'; |
|
GEOMFROMWKB: 'GEOMFROMWKB'; |
|
GET_FORMAT: 'GET_FORMAT'; |
|
GET_LOCK: 'GET_LOCK'; |
|
GLENGTH: 'GLENGTH'; |
|
GREATEST: 'GREATEST'; |
|
GTID_SUBSET: 'GTID_SUBSET'; |
|
GTID_SUBTRACT: 'GTID_SUBTRACT'; |
|
HEX: 'HEX'; |
|
IFNULL: 'IFNULL'; |
|
INET6_ATON: 'INET6_ATON'; |
|
INET6_NTOA: 'INET6_NTOA'; |
|
INET_ATON: 'INET_ATON'; |
|
INET_NTOA: 'INET_NTOA'; |
|
INSTR: 'INSTR'; |
|
INTERIORRINGN: 'INTERIORRINGN'; |
|
INTERSECTS: 'INTERSECTS'; |
|
ISCLOSED: 'ISCLOSED'; |
|
ISEMPTY: 'ISEMPTY'; |
|
ISNULL: 'ISNULL'; |
|
ISSIMPLE: 'ISSIMPLE'; |
|
IS_FREE_LOCK: 'IS_FREE_LOCK'; |
|
IS_IPV4: 'IS_IPV4'; |
|
IS_IPV4_COMPAT: 'IS_IPV4_COMPAT'; |
|
IS_IPV4_MAPPED: 'IS_IPV4_MAPPED'; |
|
IS_IPV6: 'IS_IPV6'; |
|
IS_USED_LOCK: 'IS_USED_LOCK'; |
|
LAST_INSERT_ID: 'LAST_INSERT_ID'; |
|
LCASE: 'LCASE'; |
|
LEAST: 'LEAST'; |
|
LENGTH: 'LENGTH'; |
|
LINEFROMTEXT: 'LINEFROMTEXT'; |
|
LINEFROMWKB: 'LINEFROMWKB'; |
|
LINESTRINGFROMTEXT: 'LINESTRINGFROMTEXT'; |
|
LINESTRINGFROMWKB: 'LINESTRINGFROMWKB'; |
|
LN: 'LN'; |
|
LOAD_FILE: 'LOAD_FILE'; |
|
LOCATE: 'LOCATE'; |
|
LOG: 'LOG'; |
|
LOG10: 'LOG10'; |
|
LOG2: 'LOG2'; |
|
LOWER: 'LOWER'; |
|
LPAD: 'LPAD'; |
|
LTRIM: 'LTRIM'; |
|
MAKEDATE: 'MAKEDATE'; |
|
MAKETIME: 'MAKETIME'; |
|
MAKE_SET: 'MAKE_SET'; |
|
MASTER_POS_WAIT: 'MASTER_POS_WAIT'; |
|
MBRCONTAINS: 'MBRCONTAINS'; |
|
MBRDISJOINT: 'MBRDISJOINT'; |
|
MBREQUAL: 'MBREQUAL'; |
|
MBRINTERSECTS: 'MBRINTERSECTS'; |
|
MBROVERLAPS: 'MBROVERLAPS'; |
|
MBRTOUCHES: 'MBRTOUCHES'; |
|
MBRWITHIN: 'MBRWITHIN'; |
|
MD5: 'MD5'; |
|
MLINEFROMTEXT: 'MLINEFROMTEXT'; |
|
MLINEFROMWKB: 'MLINEFROMWKB'; |
|
MONTHNAME: 'MONTHNAME'; |
|
MPOINTFROMTEXT: 'MPOINTFROMTEXT'; |
|
MPOINTFROMWKB: 'MPOINTFROMWKB'; |
|
MPOLYFROMTEXT: 'MPOLYFROMTEXT'; |
|
MPOLYFROMWKB: 'MPOLYFROMWKB'; |
|
MULTILINESTRINGFROMTEXT: 'MULTILINESTRINGFROMTEXT'; |
|
MULTILINESTRINGFROMWKB: 'MULTILINESTRINGFROMWKB'; |
|
MULTIPOINTFROMTEXT: 'MULTIPOINTFROMTEXT'; |
|
MULTIPOINTFROMWKB: 'MULTIPOINTFROMWKB'; |
|
MULTIPOLYGONFROMTEXT: 'MULTIPOLYGONFROMTEXT'; |
|
MULTIPOLYGONFROMWKB: 'MULTIPOLYGONFROMWKB'; |
|
NAME_CONST: 'NAME_CONST'; |
|
NULLIF: 'NULLIF'; |
|
NUMGEOMETRIES: 'NUMGEOMETRIES'; |
|
NUMINTERIORRINGS: 'NUMINTERIORRINGS'; |
|
NUMPOINTS: 'NUMPOINTS'; |
|
OCT: 'OCT'; |
|
OCTET_LENGTH: 'OCTET_LENGTH'; |
|
ORD: 'ORD'; |
|
OVERLAPS: 'OVERLAPS'; |
|
PERIOD_ADD: 'PERIOD_ADD'; |
|
PERIOD_DIFF: 'PERIOD_DIFF'; |
|
PI: 'PI'; |
|
POINTFROMTEXT: 'POINTFROMTEXT'; |
|
POINTFROMWKB: 'POINTFROMWKB'; |
|
POINTN: 'POINTN'; |
|
POLYFROMTEXT: 'POLYFROMTEXT'; |
|
POLYFROMWKB: 'POLYFROMWKB'; |
|
POLYGONFROMTEXT: 'POLYGONFROMTEXT'; |
|
POLYGONFROMWKB: 'POLYGONFROMWKB'; |
|
POW: 'POW'; |
|
POWER: 'POWER'; |
|
QUOTE: 'QUOTE'; |
|
RADIANS: 'RADIANS'; |
|
RAND: 'RAND'; |
|
RANDOM: 'RANDOM'; |
|
RANDOM_BYTES: 'RANDOM_BYTES'; |
|
RELEASE_LOCK: 'RELEASE_LOCK'; |
|
REVERSE: 'REVERSE'; |
|
ROUND: 'ROUND'; |
|
ROW_COUNT: 'ROW_COUNT'; |
|
RPAD: 'RPAD'; |
|
RTRIM: 'RTRIM'; |
|
SEC_TO_TIME: 'SEC_TO_TIME'; |
|
SECONDARY_ENGINE_ATTRIBUTE: 'SECONDARY_ENGINE_ATTRIBUTE'; |
|
SESSION_USER: 'SESSION_USER'; |
|
SHA: 'SHA'; |
|
SHA1: 'SHA1'; |
|
SHA2: 'SHA2'; |
|
SCHEMA_NAME: 'SCHEMA_NAME'; |
|
SIGN: 'SIGN'; |
|
SIN: 'SIN'; |
|
SLEEP: 'SLEEP'; |
|
SOUNDEX: 'SOUNDEX'; |
|
SQL_THREAD_WAIT_AFTER_GTIDS: 'SQL_THREAD_WAIT_AFTER_GTIDS'; |
|
SQRT: 'SQRT'; |
|
SRID: 'SRID'; |
|
STARTPOINT: 'STARTPOINT'; |
|
STRCMP: 'STRCMP'; |
|
STR_TO_DATE: 'STR_TO_DATE'; |
|
ST_AREA: 'ST_AREA'; |
|
ST_ASBINARY: 'ST_ASBINARY'; |
|
ST_ASTEXT: 'ST_ASTEXT'; |
|
ST_ASWKB: 'ST_ASWKB'; |
|
ST_ASWKT: 'ST_ASWKT'; |
|
ST_BUFFER: 'ST_BUFFER'; |
|
ST_CENTROID: 'ST_CENTROID'; |
|
ST_CONTAINS: 'ST_CONTAINS'; |
|
ST_CROSSES: 'ST_CROSSES'; |
|
ST_DIFFERENCE: 'ST_DIFFERENCE'; |
|
ST_DIMENSION: 'ST_DIMENSION'; |
|
ST_DISJOINT: 'ST_DISJOINT'; |
|
ST_DISTANCE: 'ST_DISTANCE'; |
|
ST_ENDPOINT: 'ST_ENDPOINT'; |
|
ST_ENVELOPE: 'ST_ENVELOPE'; |
|
ST_EQUALS: 'ST_EQUALS'; |
|
ST_EXTERIORRING: 'ST_EXTERIORRING'; |
|
ST_GEOMCOLLFROMTEXT: 'ST_GEOMCOLLFROMTEXT'; |
|
ST_GEOMCOLLFROMTXT: 'ST_GEOMCOLLFROMTXT'; |
|
ST_GEOMCOLLFROMWKB: 'ST_GEOMCOLLFROMWKB'; |
|
ST_GEOMETRYCOLLECTIONFROMTEXT: 'ST_GEOMETRYCOLLECTIONFROMTEXT'; |
|
ST_GEOMETRYCOLLECTIONFROMWKB: 'ST_GEOMETRYCOLLECTIONFROMWKB'; |
|
ST_GEOMETRYFROMTEXT: 'ST_GEOMETRYFROMTEXT'; |
|
ST_GEOMETRYFROMWKB: 'ST_GEOMETRYFROMWKB'; |
|
ST_GEOMETRYN: 'ST_GEOMETRYN'; |
|
ST_GEOMETRYTYPE: 'ST_GEOMETRYTYPE'; |
|
ST_GEOMFROMTEXT: 'ST_GEOMFROMTEXT'; |
|
ST_GEOMFROMWKB: 'ST_GEOMFROMWKB'; |
|
ST_INTERIORRINGN: 'ST_INTERIORRINGN'; |
|
ST_INTERSECTION: 'ST_INTERSECTION'; |
|
ST_INTERSECTS: 'ST_INTERSECTS'; |
|
ST_ISCLOSED: 'ST_ISCLOSED'; |
|
ST_ISEMPTY: 'ST_ISEMPTY'; |
|
ST_ISSIMPLE: 'ST_ISSIMPLE'; |
|
ST_LINEFROMTEXT: 'ST_LINEFROMTEXT'; |
|
ST_LINEFROMWKB: 'ST_LINEFROMWKB'; |
|
ST_LINESTRINGFROMTEXT: 'ST_LINESTRINGFROMTEXT'; |
|
ST_LINESTRINGFROMWKB: 'ST_LINESTRINGFROMWKB'; |
|
ST_NUMGEOMETRIES: 'ST_NUMGEOMETRIES'; |
|
ST_NUMINTERIORRING: 'ST_NUMINTERIORRING'; |
|
ST_NUMINTERIORRINGS: 'ST_NUMINTERIORRINGS'; |
|
ST_NUMPOINTS: 'ST_NUMPOINTS'; |
|
ST_OVERLAPS: 'ST_OVERLAPS'; |
|
ST_POINTFROMTEXT: 'ST_POINTFROMTEXT'; |
|
ST_POINTFROMWKB: 'ST_POINTFROMWKB'; |
|
ST_POINTN: 'ST_POINTN'; |
|
ST_POLYFROMTEXT: 'ST_POLYFROMTEXT'; |
|
ST_POLYFROMWKB: 'ST_POLYFROMWKB'; |
|
ST_POLYGONFROMTEXT: 'ST_POLYGONFROMTEXT'; |
|
ST_POLYGONFROMWKB: 'ST_POLYGONFROMWKB'; |
|
ST_SRID: 'ST_SRID'; |
|
ST_STARTPOINT: 'ST_STARTPOINT'; |
|
ST_SYMDIFFERENCE: 'ST_SYMDIFFERENCE'; |
|
ST_TOUCHES: 'ST_TOUCHES'; |
|
ST_UNION: 'ST_UNION'; |
|
ST_WITHIN: 'ST_WITHIN'; |
|
ST_X: 'ST_X'; |
|
ST_Y: 'ST_Y'; |
|
SUBDATE: 'SUBDATE'; |
|
SUBSTRING_INDEX: 'SUBSTRING_INDEX'; |
|
SUBTIME: 'SUBTIME'; |
|
SYSTEM_USER: 'SYSTEM_USER'; |
|
TAN: 'TAN'; |
|
TIMEDIFF: 'TIMEDIFF'; |
|
TIMESTAMPADD: 'TIMESTAMPADD'; |
|
TIMESTAMPDIFF: 'TIMESTAMPDIFF'; |
|
TIME_FORMAT: 'TIME_FORMAT'; |
|
TIME_TO_SEC: 'TIME_TO_SEC'; |
|
TOUCHES: 'TOUCHES'; |
|
TO_BASE64: 'TO_BASE64'; |
|
TO_DAYS: 'TO_DAYS'; |
|
TO_SECONDS: 'TO_SECONDS'; |
|
TP_CONNECTION_ADMIN: 'TP_CONNECTION_ADMIN'; |
|
UCASE: 'UCASE'; |
|
UNCOMPRESS: 'UNCOMPRESS'; |
|
UNCOMPRESSED_LENGTH: 'UNCOMPRESSED_LENGTH'; |
|
UNHEX: 'UNHEX'; |
|
UNIX_TIMESTAMP: 'UNIX_TIMESTAMP'; |
|
UPDATEXML: 'UPDATEXML'; |
|
UPPER: 'UPPER'; |
|
UUID: 'UUID'; |
|
UUID_SHORT: 'UUID_SHORT'; |
|
VALIDATE_PASSWORD_STRENGTH: 'VALIDATE_PASSWORD_STRENGTH'; |
|
VERSION: 'VERSION'; |
|
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'; |
|
WEEKDAY: 'WEEKDAY'; |
|
WEEKOFYEAR: 'WEEKOFYEAR'; |
|
WEIGHT_STRING: 'WEIGHT_STRING'; |
|
WITHIN: 'WITHIN'; |
|
YEARWEEK: 'YEARWEEK'; |
|
Y_FUNCTION: 'Y'; |
|
X_FUNCTION: 'X'; |
|
|
|
|
|
|
|
|
|
// Operators |
|
// Operators. Assigns |
|
|
|
VAR_ASSIGN: ':='; |
|
PLUS_ASSIGN: '+='; |
|
MINUS_ASSIGN: '-='; |
|
MULT_ASSIGN: '*='; |
|
DIV_ASSIGN: '/='; |
|
MOD_ASSIGN: '%='; |
|
AND_ASSIGN: '&='; |
|
XOR_ASSIGN: '^='; |
|
OR_ASSIGN: '|='; |
|
|
|
|
|
// Operators. Arithmetics |
|
|
|
STAR: '*'; |
|
DIVIDE: '/'; |
|
MODULE: '%'; |
|
PLUS: '+'; |
|
MINUS: '-'; |
|
DIV: 'DIV'; |
|
MOD: 'MOD'; |
|
|
|
|
|
// Operators. Comparation |
|
|
|
EQUAL_SYMBOL: '='; |
|
GREATER_SYMBOL: '>'; |
|
LESS_SYMBOL: '<'; |
|
EXCLAMATION_SYMBOL: '!'; |
|
|
|
|
|
// Operators. Bit |
|
|
|
BIT_NOT_OP: '~'; |
|
BIT_OR_OP: '|'; |
|
BIT_AND_OP: '&'; |
|
BIT_XOR_OP: '^'; |
|
|
|
|
|
// Constructors symbols |
|
|
|
DOT: '.'; |
|
LR_BRACKET: '('; |
|
RR_BRACKET: ')'; |
|
COMMA: ','; |
|
SEMI: ';'; |
|
AT_SIGN: '@'; |
|
ZERO_DECIMAL: '0'; |
|
ONE_DECIMAL: '1'; |
|
TWO_DECIMAL: '2'; |
|
SINGLE_QUOTE_SYMB: '\''; |
|
DOUBLE_QUOTE_SYMB: '"'; |
|
REVERSE_QUOTE_SYMB: '`'; |
|
COLON_SYMB: ':'; |
|
|
|
fragment QUOTE_SYMB |
|
: SINGLE_QUOTE_SYMB | DOUBLE_QUOTE_SYMB | REVERSE_QUOTE_SYMB |
|
; |
|
|
|
|
|
|
|
// Charsets |
|
|
|
CHARSET_REVERSE_QOUTE_STRING: '`' CHARSET_NAME '`'; |
|
|
|
|
|
|
|
// File's sizes |
|
|
|
|
|
FILESIZE_LITERAL: DEC_DIGIT+ ('K'|'M'|'G'|'T'); |
|
|
|
|
|
|
|
// Literal Primitives |
|
|
|
|
|
START_NATIONAL_STRING_LITERAL: 'N' SQUOTA_STRING; |
|
STRING_LITERAL: DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING; |
|
DECIMAL_LITERAL: DEC_DIGIT+; |
|
HEXADECIMAL_LITERAL: 'X' '\'' (HEX_DIGIT HEX_DIGIT)+ '\'' |
|
| '0X' HEX_DIGIT+; |
|
|
|
REAL_LITERAL: (DEC_DIGIT+)? '.' DEC_DIGIT+ |
|
| DEC_DIGIT+ '.' EXPONENT_NUM_PART |
|
| (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART) |
|
| DEC_DIGIT+ EXPONENT_NUM_PART; |
|
NULL_SPEC_LITERAL: '\\' 'N'; |
|
BIT_STRING: BIT_STRING_L; |
|
STRING_CHARSET_NAME: '_' CHARSET_NAME; |
|
|
|
|
|
|
|
|
|
// Hack for dotID |
|
// Prevent recognize string: .123somelatin AS ((.123), FLOAT_LITERAL), ((somelatin), ID) |
|
// it must recoginze: .123somelatin AS ((.), DOT), (123somelatin, ID) |
|
|
|
DOT_ID: '.' ID_LITERAL; |
|
|
|
|
|
|
|
// Identifiers |
|
|
|
ID: ID_LITERAL; |
|
// DOUBLE_QUOTE_ID: '"' ~'"'+ '"'; |
|
REVERSE_QUOTE_ID: BQUOTA_STRING; |
|
STRING_USER_NAME: ( |
|
SQUOTA_STRING | DQUOTA_STRING |
|
| BQUOTA_STRING | ID_LITERAL |
|
) '@' |
|
( |
|
SQUOTA_STRING | DQUOTA_STRING |
|
| BQUOTA_STRING | ID_LITERAL |
|
| IP_ADDRESS |
|
); |
|
IP_ADDRESS: ( |
|
[0-9]+ '.' [0-9.]+ |
|
| [0-9A-F]* ':' [0-9A-F]* ':' [0-9A-F:]+ |
|
); |
|
LOCAL_ID: '@' |
|
( |
|
[A-Z0-9._$\u0080-\uFFFF]+ |
|
| SQUOTA_STRING |
|
| DQUOTA_STRING |
|
| BQUOTA_STRING |
|
); |
|
GLOBAL_ID: '@' '@' |
|
( |
|
[A-Z0-9._$\u0080-\uFFFF]+ |
|
| BQUOTA_STRING |
|
); |
|
|
|
|
|
// Fragments for Literal primitives |
|
|
|
fragment CHARSET_NAME: ARMSCII8 | ASCII | BIG5 | BINARY | CP1250 |
|
| CP1251 | CP1256 | CP1257 | CP850 |
|
| CP852 | CP866 | CP932 | DEC8 | EUCJPMS |
|
| EUCKR | GB2312 | GBK | GEOSTD8 | GREEK |
|
| HEBREW | HP8 | KEYBCS2 | KOI8R | KOI8U |
|
| LATIN1 | LATIN2 | LATIN5 | LATIN7 |
|
| MACCE | MACROMAN | SJIS | SWE7 | TIS620 |
|
| UCS2 | UJIS | UTF16 | UTF16LE | UTF32 |
|
| UTF8 | UTF8MB3 | UTF8MB4; |
|
|
|
fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+; |
|
fragment ID_LITERAL: [A-Z_$0-9\u0080-\uFFFF]*?[A-Z_$\u0080-\uFFFF]+?[A-Z_$0-9\u0080-\uFFFF]*; |
|
fragment DQUOTA_STRING: '"' ( '\\'. | '""' | ~('"'| '\\') )* '"'; |
|
fragment SQUOTA_STRING: '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\''; |
|
fragment BQUOTA_STRING: '`' ( ~'`' | '``' )* '`'; |
|
fragment HEX_DIGIT: [0-9A-F]; |
|
fragment DEC_DIGIT: [0-9]; |
|
fragment BIT_STRING_L: 'B' '\'' [01]+ '\''; |
|
|
|
|
|
|
|
// Last tokens must generate Errors |
|
|
|
ERROR_RECONGNIGION: . -> channel(ERRORCHANNEL);
|
|
|