/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
define('vs/basic-languages/mysql/mysql',["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.language = exports.conf = void 0;
    exports.conf = {
        comments: {
            lineComment: '--',
            blockComment: ['/*', '*/']
        },
        brackets: [
            ['{', '}'],
            ['[', ']'],
            ['(', ')']
        ],
        autoClosingPairs: [
            { open: '{', close: '}' },
            { open: '[', close: ']' },
            { open: '(', close: ')' },
            { open: '"', close: '"' },
            { open: "'", close: "'" }
        ],
        surroundingPairs: [
            { open: '{', close: '}' },
            { open: '[', close: ']' },
            { open: '(', close: ')' },
            { open: '"', close: '"' },
            { open: "'", close: "'" }
        ]
    };
    exports.language = {
        defaultToken: '',
        tokenPostfix: '.sql',
        ignoreCase: true,
        brackets: [
            { open: '[', close: ']', token: 'delimiter.square' },
            { open: '(', close: ')', token: 'delimiter.parenthesis' }
        ],
        keywords: [
            'ACCESSIBLE',
            'ACCOUNT',
            'ACTION',
            'ADD',
            'AFTER',
            'AGAINST',
            'AGGREGATE',
            'ALGORITHM',
            'ALL',
            'ALTER',
            'ALWAYS',
            'ANALYSE',
            'ANALYZE',
            'AND',
            'ANY',
            'AS',
            'ASC',
            'ASCII',
            'ASENSITIVE',
            'AT',
            'AUTOEXTEND_SIZE',
            'AUTO_INCREMENT',
            'AVG',
            'AVG_ROW_LENGTH',
            'BACKUP',
            'BEFORE',
            'BEGIN',
            'BETWEEN',
            'BIGINT',
            'BINARY',
            'BINLOG',
            'BIT',
            'BLOB',
            'BLOCK',
            'BOOL',
            'BOOLEAN',
            'BOTH',
            'BTREE',
            'BY',
            'BYTE',
            'CACHE',
            'CALL',
            'CASCADE',
            'CASCADED',
            'CASE',
            'CATALOG_NAME',
            'CHAIN',
            'CHANGE',
            'CHANGED',
            'CHANNEL',
            'CHAR',
            'CHARACTER',
            'CHARSET',
            'CHECK',
            'CHECKSUM',
            'CIPHER',
            'CLASS_ORIGIN',
            'CLIENT',
            'CLOSE',
            'COALESCE',
            'CODE',
            'COLLATE',
            'COLLATION',
            'COLUMN',
            'COLUMNS',
            'COLUMN_FORMAT',
            'COLUMN_NAME',
            'COMMENT',
            'COMMIT',
            'COMMITTED',
            'COMPACT',
            'COMPLETION',
            'COMPRESSED',
            'COMPRESSION',
            'CONCURRENT',
            'CONDITION',
            'CONNECTION',
            'CONSISTENT',
            'CONSTRAINT',
            'CONSTRAINT_CATALOG',
            'CONSTRAINT_NAME',
            'CONSTRAINT_SCHEMA',
            'CONTAINS',
            'CONTEXT',
            'CONTINUE',
            'CONVERT',
            'CPU',
            'CREATE',
            'CROSS',
            'CUBE',
            'CURRENT',
            'CURRENT_DATE',
            'CURRENT_TIME',
            'CURRENT_TIMESTAMP',
            'CURRENT_USER',
            'CURSOR',
            'CURSOR_NAME',
            'DATA',
            'DATABASE',
            'DATABASES',
            'DATAFILE',
            'DATE',
            'DATETIME',
            'DAY',
            'DAY_HOUR',
            'DAY_MICROSECOND',
            'DAY_MINUTE',
            'DAY_SECOND',
            'DEALLOCATE',
            'DEC',
            'DECIMAL',
            'DECLARE',
            'DEFAULT',
            'DEFAULT_AUTH',
            'DEFINER',
            'DELAYED',
            'DELAY_KEY_WRITE',
            'DELETE',
            'DESC',
            'DESCRIBE',
            'DES_KEY_FILE',
            'DETERMINISTIC',
            'DIAGNOSTICS',
            'DIRECTORY',
            'DISABLE',
            'DISCARD',
            'DISK',
            'DISTINCT',
            'DISTINCTROW',
            'DIV',
            'DO',
            'DOUBLE',
            'DROP',
            'DUAL',
            'DUMPFILE',
            'DUPLICATE',
            'DYNAMIC',
            'EACH',
            'ELSE',
            'ELSEIF',
            'ENABLE',
            'ENCLOSED',
            'ENCRYPTION',
            'END',
            'ENDS',
            'ENGINE',
            'ENGINES',
            'ENUM',
            'ERROR',
            'ERRORS',
            'ESCAPE',
            'ESCAPED',
            'EVENT',
            'EVENTS',
            'EVERY',
            'EXCHANGE',
            'EXECUTE',
            'EXISTS',
            'EXIT',
            'EXPANSION',
            'EXPIRE',
            'EXPLAIN',
            'EXPORT',
            'EXTENDED',
            'EXTENT_SIZE',
            'FALSE',
            'FAST',
            'FAULTS',
            'FETCH',
            'FIELDS',
            'FILE',
            'FILE_BLOCK_SIZE',
            'FILTER',
            'FIRST',
            'FIXED',
            'FLOAT',
            'FLOAT4',
            'FLOAT8',
            'FLUSH',
            'FOLLOWS',
            'FOR',
            'FORCE',
            'FOREIGN',
            'FORMAT',
            'FOUND',
            'FROM',
            'FULL',
            'FULLTEXT',
            'FUNCTION',
            'GENERAL',
            'GENERATED',
            'GEOMETRY',
            'GEOMETRYCOLLECTION',
            'GET',
            'GET_FORMAT',
            'GLOBAL',
            'GRANT',
            'GRANTS',
            'GROUP',
            'GROUP_REPLICATION',
            'HANDLER',
            'HASH',
            'HAVING',
            'HELP',
            'HIGH_PRIORITY',
            'HOST',
            'HOSTS',
            'HOUR',
            'HOUR_MICROSECOND',
            'HOUR_MINUTE',
            'HOUR_SECOND',
            'IDENTIFIED',
            'IF',
            'IGNORE',
            'IGNORE_SERVER_IDS',
            'IMPORT',
            'INDEX',
            'INDEXES',
            'INFILE',
            'INITIAL_SIZE',
            'INNER',
            'INOUT',
            'INSENSITIVE',
            'INSERT',
            'INSERT_METHOD',
            'INSTALL',
            'INSTANCE',
            'INT',
            'INT1',
            'INT2',
            'INT3',
            'INT4',
            'INT8',
            'INTEGER',
            'INTERVAL',
            'INTO',
            'INVOKER',
            'IO',
            'IO_AFTER_GTIDS',
            'IO_BEFORE_GTIDS',
            'IO_THREAD',
            'IPC',
            'ISOLATION',
            'ISSUER',
            'ITERATE',
            'JOIN',
            'JSON',
            'KEY',
            'KEYS',
            'KEY_BLOCK_SIZE',
            'KILL',
            'LANGUAGE',
            'LAST',
            'LEADING',
            'LEAVE',
            'LEAVES',
            'LEFT',
            'LESS',
            'LEVEL',
            'LIKE',
            'LIMIT',
            'LINEAR',
            'LINES',
            'LINESTRING',
            'LIST',
            'LOAD',
            'LOCAL',
            'LOCALTIME',
            'LOCALTIMESTAMP',
            'LOCK',
            'LOCKS',
            'LOGFILE',
            'LOGS',
            'LONG',
            'LONGBLOB',
            'LONGTEXT',
            'LOOP',
            'LOW_PRIORITY',
            'MASTER',
            'MASTER_AUTO_POSITION',
            'MASTER_BIND',
            'MASTER_CONNECT_RETRY',
            'MASTER_DELAY',
            'MASTER_HEARTBEAT_PERIOD',
            'MASTER_HOST',
            'MASTER_LOG_FILE',
            'MASTER_LOG_POS',
            'MASTER_PASSWORD',
            'MASTER_PORT',
            'MASTER_RETRY_COUNT',
            'MASTER_SERVER_ID',
            'MASTER_SSL',
            'MASTER_SSL_CA',
            'MASTER_SSL_CAPATH',
            'MASTER_SSL_CERT',
            'MASTER_SSL_CIPHER',
            'MASTER_SSL_CRL',
            'MASTER_SSL_CRLPATH',
            'MASTER_SSL_KEY',
            'MASTER_SSL_VERIFY_SERVER_CERT',
            'MASTER_TLS_VERSION',
            'MASTER_USER',
            'MATCH',
            'MAXVALUE',
            'MAX_CONNECTIONS_PER_HOUR',
            'MAX_QUERIES_PER_HOUR',
            'MAX_ROWS',
            'MAX_SIZE',
            'MAX_STATEMENT_TIME',
            'MAX_UPDATES_PER_HOUR',
            'MAX_USER_CONNECTIONS',
            'MEDIUM',
            'MEDIUMBLOB',
            'MEDIUMINT',
            'MEDIUMTEXT',
            'MEMORY',
            'MERGE',
            'MESSAGE_TEXT',
            'MICROSECOND',
            'MIDDLEINT',
            'MIGRATE',
            'MINUTE',
            'MINUTE_MICROSECOND',
            'MINUTE_SECOND',
            'MIN_ROWS',
            'MOD',
            'MODE',
            'MODIFIES',
            'MODIFY',
            'MONTH',
            'MULTILINESTRING',
            'MULTIPOINT',
            'MULTIPOLYGON',
            'MUTEX',
            'MYSQL_ERRNO',
            'NAME',
            'NAMES',
            'NATIONAL',
            'NATURAL',
            'NCHAR',
            'NDB',
            'NDBCLUSTER',
            'NEVER',
            'NEW',
            'NEXT',
            'NO',
            'NODEGROUP',
            'NONBLOCKING',
            'NONE',
            'NO_WAIT',
            'NO_WRITE_TO_BINLOG',
            'NUMBER',
            'NUMERIC',
            'NVARCHAR',
            'OFFSET',
            'OLD_PASSWORD',
            'ON',
            'ONE',
            'ONLY',
            'OPEN',
            'OPTIMIZE',
            'OPTIMIZER_COSTS',
            'OPTION',
            'OPTIONALLY',
            'OPTIONS',
            'OR',
            'ORDER',
            'OUT',
            'OUTER',
            'OUTFILE',
            'OWNER',
            'PACK_KEYS',
            'PAGE',
            'PARSER',
            'PARSE_GCOL_EXPR',
            'PARTIAL',
            'PARTITION',
            'PARTITIONING',
            'PARTITIONS',
            'PASSWORD',
            'PHASE',
            'PLUGIN',
            'PLUGINS',
            'PLUGIN_DIR',
            'POINT',
            'POLYGON',
            'PORT',
            'PRECEDES',
            'PRECISION',
            'PREPARE',
            'PRESERVE',
            'PREV',
            'PRIMARY',
            'PRIVILEGES',
            'PROCEDURE',
            'PROCESSLIST',
            'PROFILE',
            'PROFILES',
            'PROXY',
            'PURGE',
            'QUARTER',
            'QUERY',
            'QUICK',
            'RANGE',
            'READ',
            'READS',
            'READ_ONLY',
            'READ_WRITE',
            'REAL',
            'REBUILD',
            'RECOVER',
            'REDOFILE',
            'REDO_BUFFER_SIZE',
            'REDUNDANT',
            'REFERENCES',
            'REGEXP',
            'RELAY',
            'RELAYLOG',
            'RELAY_LOG_FILE',
            'RELAY_LOG_POS',
            'RELAY_THREAD',
            'RELEASE',
            'RELOAD',
            'REMOVE',
            'RENAME',
            'REORGANIZE',
            'REPAIR',
            'REPEAT',
            'REPEATABLE',
            'REPLACE',
            'REPLICATE_DO_DB',
            'REPLICATE_DO_TABLE',
            'REPLICATE_IGNORE_DB',
            'REPLICATE_IGNORE_TABLE',
            'REPLICATE_REWRITE_DB',
            'REPLICATE_WILD_DO_TABLE',
            'REPLICATE_WILD_IGNORE_TABLE',
            'REPLICATION',
            'REQUIRE',
            'RESET',
            'RESIGNAL',
            'RESTORE',
            'RESTRICT',
            'RESUME',
            'RETURN',
            'RETURNED_SQLSTATE',
            'RETURNS',
            'REVERSE',
            'REVOKE',
            'RIGHT',
            'RLIKE',
            'ROLLBACK',
            'ROLLUP',
            'ROTATE',
            'ROUTINE',
            'ROW',
            'ROWS',
            'ROW_COUNT',
            'ROW_FORMAT',
            'RTREE',
            'SAVEPOINT',
            'SCHEDULE',
            'SCHEMA',
            'SCHEMAS',
            'SCHEMA_NAME',
            'SECOND',
            'SECOND_MICROSECOND',
            'SECURITY',
            'SELECT',
            'SENSITIVE',
            'SEPARATOR',
            'SERIAL',
            'SERIALIZABLE',
            'SERVER',
            'SESSION',
            'SET',
            'SHARE',
            'SHOW',
            'SHUTDOWN',
            'SIGNAL',
            'SIGNED',
            'SIMPLE',
            'SLAVE',
            'SLOW',
            'SMALLINT',
            'SNAPSHOT',
            'SOCKET',
            'SOME',
            'SONAME',
            'SOUNDS',
            'SOURCE',
            'SPATIAL',
            'SPECIFIC',
            'SQL',
            'SQLEXCEPTION',
            'SQLSTATE',
            'SQLWARNING',
            'SQL_AFTER_GTIDS',
            'SQL_AFTER_MTS_GAPS',
            'SQL_BEFORE_GTIDS',
            'SQL_BIG_RESULT',
            'SQL_BUFFER_RESULT',
            'SQL_CACHE',
            'SQL_CALC_FOUND_ROWS',
            'SQL_NO_CACHE',
            'SQL_SMALL_RESULT',
            'SQL_THREAD',
            'SQL_TSI_DAY',
            'SQL_TSI_HOUR',
            'SQL_TSI_MINUTE',
            'SQL_TSI_MONTH',
            'SQL_TSI_QUARTER',
            'SQL_TSI_SECOND',
            'SQL_TSI_WEEK',
            'SQL_TSI_YEAR',
            'SSL',
            'STACKED',
            'START',
            'STARTING',
            'STARTS',
            'STATS_AUTO_RECALC',
            'STATS_PERSISTENT',
            'STATS_SAMPLE_PAGES',
            'STATUS',
            'STOP',
            'STORAGE',
            'STORED',
            'STRAIGHT_JOIN',
            'STRING',
            'SUBCLASS_ORIGIN',
            'SUBJECT',
            'SUBPARTITION',
            'SUBPARTITIONS',
            'SUPER',
            'SUSPEND',
            'SWAPS',
            'SWITCHES',
            'TABLE',
            'TABLES',
            'TABLESPACE',
            'TABLE_CHECKSUM',
            'TABLE_NAME',
            'TEMPORARY',
            'TEMPTABLE',
            'TERMINATED',
            'TEXT',
            'THAN',
            'THEN',
            'TIME',
            'TIMESTAMP',
            'TIMESTAMPADD',
            'TIMESTAMPDIFF',
            'TINYBLOB',
            'TINYINT',
            'TINYTEXT',
            'TO',
            'TRAILING',
            'TRANSACTION',
            'TRIGGER',
            'TRIGGERS',
            'TRUE',
            'TRUNCATE',
            'TYPE',
            'TYPES',
            'UNCOMMITTED',
            'UNDEFINED',
            'UNDO',
            'UNDOFILE',
            'UNDO_BUFFER_SIZE',
            'UNICODE',
            'UNINSTALL',
            'UNION',
            'UNIQUE',
            'UNKNOWN',
            'UNLOCK',
            'UNSIGNED',
            'UNTIL',
            'UPDATE',
            'UPGRADE',
            'USAGE',
            'USE',
            'USER',
            'USER_RESOURCES',
            'USE_FRM',
            'USING',
            'UTC_DATE',
            'UTC_TIME',
            'UTC_TIMESTAMP',
            'VALIDATION',
            'VALUE',
            'VALUES',
            'VARBINARY',
            'VARCHAR',
            'VARCHARACTER',
            'VARIABLES',
            'VARYING',
            'VIEW',
            'VIRTUAL',
            'WAIT',
            'WARNINGS',
            'WEEK',
            'WEIGHT_STRING',
            'WHEN',
            'WHERE',
            'WHILE',
            'WITH',
            'WITHOUT',
            'WORK',
            'WRAPPER',
            'WRITE',
            'X509',
            'XA',
            'XID',
            'XML',
            'XOR',
            'YEAR',
            'YEAR_MONTH',
            'ZEROFILL'
        ],
        operators: [
            'AND',
            'BETWEEN',
            'IN',
            'LIKE',
            'NOT',
            'OR',
            'IS',
            'NULL',
            'INTERSECT',
            'UNION',
            'INNER',
            'JOIN',
            'LEFT',
            'OUTER',
            'RIGHT'
        ],
        builtinFunctions: [
            'ABS',
            'ACOS',
            'ADDDATE',
            'ADDTIME',
            'AES_DECRYPT',
            'AES_ENCRYPT',
            'ANY_VALUE',
            'Area',
            'AsBinary',
            'AsWKB',
            'ASCII',
            'ASIN',
            'AsText',
            'AsWKT',
            'ASYMMETRIC_DECRYPT',
            'ASYMMETRIC_DERIVE',
            'ASYMMETRIC_ENCRYPT',
            'ASYMMETRIC_SIGN',
            'ASYMMETRIC_VERIFY',
            'ATAN',
            'ATAN2',
            'ATAN',
            'AVG',
            'BENCHMARK',
            'BIN',
            'BIT_AND',
            'BIT_COUNT',
            'BIT_LENGTH',
            'BIT_OR',
            'BIT_XOR',
            'Buffer',
            'CAST',
            'CEIL',
            'CEILING',
            'Centroid',
            'CHAR',
            'CHAR_LENGTH',
            'CHARACTER_LENGTH',
            'CHARSET',
            'COALESCE',
            'COERCIBILITY',
            'COLLATION',
            'COMPRESS',
            'CONCAT',
            'CONCAT_WS',
            'CONNECTION_ID',
            'Contains',
            'CONV',
            'CONVERT',
            'CONVERT_TZ',
            'ConvexHull',
            'COS',
            'COT',
            'COUNT',
            'CRC32',
            'CREATE_ASYMMETRIC_PRIV_KEY',
            'CREATE_ASYMMETRIC_PUB_KEY',
            'CREATE_DH_PARAMETERS',
            'CREATE_DIGEST',
            'Crosses',
            'CURDATE',
            'CURRENT_DATE',
            'CURRENT_TIME',
            'CURRENT_TIMESTAMP',
            'CURRENT_USER',
            'CURTIME',
            'DATABASE',
            'DATE',
            'DATE_ADD',
            'DATE_FORMAT',
            'DATE_SUB',
            'DATEDIFF',
            'DAY',
            'DAYNAME',
            'DAYOFMONTH',
            'DAYOFWEEK',
            'DAYOFYEAR',
            'DECODE',
            'DEFAULT',
            'DEGREES',
            'DES_DECRYPT',
            'DES_ENCRYPT',
            'Dimension',
            'Disjoint',
            'Distance',
            'ELT',
            'ENCODE',
            'ENCRYPT',
            'EndPoint',
            'Envelope',
            'Equals',
            'EXP',
            'EXPORT_SET',
            'ExteriorRing',
            'EXTRACT',
            'ExtractValue',
            'FIELD',
            'FIND_IN_SET',
            'FLOOR',
            'FORMAT',
            'FOUND_ROWS',
            'FROM_BASE64',
            'FROM_DAYS',
            'FROM_UNIXTIME',
            'GeomCollFromText',
            'GeometryCollectionFromText',
            'GeomCollFromWKB',
            'GeometryCollectionFromWKB',
            'GeometryCollection',
            'GeometryN',
            'GeometryType',
            'GeomFromText',
            'GeometryFromText',
            'GeomFromWKB',
            'GeometryFromWKB',
            'GET_FORMAT',
            'GET_LOCK',
            'GLength',
            'GREATEST',
            'GROUP_CONCAT',
            'GTID_SUBSET',
            'GTID_SUBTRACT',
            'HEX',
            'HOUR',
            'IF',
            'IFNULL',
            'INET_ATON',
            'INET_NTOA',
            'INET6_ATON',
            'INET6_NTOA',
            'INSERT',
            'INSTR',
            'InteriorRingN',
            'Intersects',
            'INTERVAL',
            'IS_FREE_LOCK',
            'IS_IPV4',
            'IS_IPV4_COMPAT',
            'IS_IPV4_MAPPED',
            'IS_IPV6',
            'IS_USED_LOCK',
            'IsClosed',
            'IsEmpty',
            'ISNULL',
            'IsSimple',
            'JSON_APPEND',
            'JSON_ARRAY',
            'JSON_ARRAY_APPEND',
            'JSON_ARRAY_INSERT',
            'JSON_CONTAINS',
            'JSON_CONTAINS_PATH',
            'JSON_DEPTH',
            'JSON_EXTRACT',
            'JSON_INSERT',
            'JSON_KEYS',
            'JSON_LENGTH',
            'JSON_MERGE',
            'JSON_MERGE_PRESERVE',
            'JSON_OBJECT',
            'JSON_QUOTE',
            'JSON_REMOVE',
            'JSON_REPLACE',
            'JSON_SEARCH',
            'JSON_SET',
            'JSON_TYPE',
            'JSON_UNQUOTE',
            'JSON_VALID',
            'LAST_INSERT_ID',
            'LCASE',
            'LEAST',
            'LEFT',
            'LENGTH',
            'LineFromText',
            'LineStringFromText',
            'LineFromWKB',
            'LineStringFromWKB',
            'LineString',
            'LN',
            'LOAD_FILE',
            'LOCALTIME',
            'LOCALTIMESTAMP',
            'LOCATE',
            'LOG',
            'LOG10',
            'LOG2',
            'LOWER',
            'LPAD',
            'LTRIM',
            'MAKE_SET',
            'MAKEDATE',
            'MAKETIME',
            'MASTER_POS_WAIT',
            'MAX',
            'MBRContains',
            'MBRCoveredBy',
            'MBRCovers',
            'MBRDisjoint',
            'MBREqual',
            'MBREquals',
            'MBRIntersects',
            'MBROverlaps',
            'MBRTouches',
            'MBRWithin',
            'MD5',
            'MICROSECOND',
            'MID',
            'MIN',
            'MINUTE',
            'MLineFromText',
            'MultiLineStringFromText',
            'MLineFromWKB',
            'MultiLineStringFromWKB',
            'MOD',
            'MONTH',
            'MONTHNAME',
            'MPointFromText',
            'MultiPointFromText',
            'MPointFromWKB',
            'MultiPointFromWKB',
            'MPolyFromText',
            'MultiPolygonFromText',
            'MPolyFromWKB',
            'MultiPolygonFromWKB',
            'MultiLineString',
            'MultiPoint',
            'MultiPolygon',
            'NAME_CONST',
            'NOT IN',
            'NOW',
            'NULLIF',
            'NumGeometries',
            'NumInteriorRings',
            'NumPoints',
            'OCT',
            'OCTET_LENGTH',
            'OLD_PASSWORD',
            'ORD',
            'Overlaps',
            'PASSWORD',
            'PERIOD_ADD',
            'PERIOD_DIFF',
            'PI',
            'Point',
            'PointFromText',
            'PointFromWKB',
            'PointN',
            'PolyFromText',
            'PolygonFromText',
            'PolyFromWKB',
            'PolygonFromWKB',
            'Polygon',
            'POSITION',
            'POW',
            'POWER',
            'PROCEDURE ANALYSE',
            'QUARTER',
            'QUOTE',
            'RADIANS',
            'RAND',
            'RANDOM_BYTES',
            'RELEASE_ALL_LOCKS',
            'RELEASE_LOCK',
            'REPEAT',
            'REPLACE',
            'REVERSE',
            'RIGHT',
            'ROUND',
            'ROW_COUNT',
            'RPAD',
            'RTRIM',
            'SCHEMA',
            'SEC_TO_TIME',
            'SECOND',
            'SESSION_USER',
            'SHA1',
            'SHA',
            'SHA2',
            'SIGN',
            'SIN',
            'SLEEP',
            'SOUNDEX',
            'SPACE',
            'SQRT',
            'SRID',
            'ST_Area',
            'ST_AsBinary',
            'ST_AsWKB',
            'ST_AsGeoJSON',
            'ST_AsText',
            'ST_AsWKT',
            'ST_Buffer',
            'ST_Buffer_Strategy',
            'ST_Centroid',
            'ST_Contains',
            'ST_ConvexHull',
            'ST_Crosses',
            'ST_Difference',
            'ST_Dimension',
            'ST_Disjoint',
            'ST_Distance',
            'ST_Distance_Sphere',
            'ST_EndPoint',
            'ST_Envelope',
            'ST_Equals',
            'ST_ExteriorRing',
            'ST_GeoHash',
            'ST_GeomCollFromText',
            'ST_GeometryCollectionFromText',
            'ST_GeomCollFromTxt',
            'ST_GeomCollFromWKB',
            'ST_GeometryCollectionFromWKB',
            'ST_GeometryN',
            'ST_GeometryType',
            'ST_GeomFromGeoJSON',
            'ST_GeomFromText',
            'ST_GeometryFromText',
            'ST_GeomFromWKB',
            'ST_GeometryFromWKB',
            'ST_InteriorRingN',
            'ST_Intersection',
            'ST_Intersects',
            'ST_IsClosed',
            'ST_IsEmpty',
            'ST_IsSimple',
            'ST_IsValid',
            'ST_LatFromGeoHash',
            'ST_Length',
            'ST_LineFromText',
            'ST_LineStringFromText',
            'ST_LineFromWKB',
            'ST_LineStringFromWKB',
            'ST_LongFromGeoHash',
            'ST_MakeEnvelope',
            'ST_MLineFromText',
            'ST_MultiLineStringFromText',
            'ST_MLineFromWKB',
            'ST_MultiLineStringFromWKB',
            'ST_MPointFromText',
            'ST_MultiPointFromText',
            'ST_MPointFromWKB',
            'ST_MultiPointFromWKB',
            'ST_MPolyFromText',
            'ST_MultiPolygonFromText',
            'ST_MPolyFromWKB',
            'ST_MultiPolygonFromWKB',
            'ST_NumGeometries',
            'ST_NumInteriorRing',
            'ST_NumInteriorRings',
            'ST_NumPoints',
            'ST_Overlaps',
            'ST_PointFromGeoHash',
            'ST_PointFromText',
            'ST_PointFromWKB',
            'ST_PointN',
            'ST_PolyFromText',
            'ST_PolygonFromText',
            'ST_PolyFromWKB',
            'ST_PolygonFromWKB',
            'ST_Simplify',
            'ST_SRID',
            'ST_StartPoint',
            'ST_SymDifference',
            'ST_Touches',
            'ST_Union',
            'ST_Validate',
            'ST_Within',
            'ST_X',
            'ST_Y',
            'StartPoint',
            'STD',
            'STDDEV',
            'STDDEV_POP',
            'STDDEV_SAMP',
            'STR_TO_DATE',
            'STRCMP',
            'SUBDATE',
            'SUBSTR',
            'SUBSTRING',
            'SUBSTRING_INDEX',
            'SUBTIME',
            'SUM',
            'SYSDATE',
            'SYSTEM_USER',
            'TAN',
            'TIME',
            'TIME_FORMAT',
            'TIME_TO_SEC',
            'TIMEDIFF',
            'TIMESTAMP',
            'TIMESTAMPADD',
            'TIMESTAMPDIFF',
            'TO_BASE64',
            'TO_DAYS',
            'TO_SECONDS',
            'Touches',
            'TRIM',
            'TRUNCATE',
            'UCASE',
            'UNCOMPRESS',
            'UNCOMPRESSED_LENGTH',
            'UNHEX',
            'UNIX_TIMESTAMP',
            'UpdateXML',
            'UPPER',
            'USER',
            'UTC_DATE',
            'UTC_TIME',
            'UTC_TIMESTAMP',
            'UUID',
            'UUID_SHORT',
            'VALIDATE_PASSWORD_STRENGTH',
            'VALUES',
            'VAR_POP',
            'VAR_SAMP',
            'VARIANCE',
            'VERSION',
            'WAIT_FOR_EXECUTED_GTID_SET',
            'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS',
            'WEEK',
            'WEEKDAY',
            'WEEKOFYEAR',
            'WEIGHT_STRING',
            'Within',
            'X',
            'Y',
            'YEAR',
            'YEARWEEK'
        ],
        builtinVariables: [
        // NOT SUPPORTED
        ],
        tokenizer: {
            root: [
                { include: '@comments' },
                { include: '@whitespace' },
                { include: '@numbers' },
                { include: '@strings' },
                { include: '@complexIdentifiers' },
                { include: '@scopes' },
                [/[;,.]/, 'delimiter'],
                [/[()]/, '@brackets'],
                [
                    /[\w@]+/,
                    {
                        cases: {
                            '@keywords': 'keyword',
                            '@operators': 'operator',
                            '@builtinVariables': 'predefined',
                            '@builtinFunctions': 'predefined',
                            '@default': 'identifier'
                        }
                    }
                ],
                [/[<>=!%&+\-*/|~^]/, 'operator']
            ],
            whitespace: [[/\s+/, 'white']],
            comments: [
                [/--+.*/, 'comment'],
                [/#+.*/, 'comment'],
                [/\/\*/, { token: 'comment.quote', next: '@comment' }]
            ],
            comment: [
                [/[^*/]+/, 'comment'],
                // Not supporting nested comments, as nested comments seem to not be standard?
                // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
                // [/\/\*/, { token: 'comment.quote', next: '@push' }],    // nested comment not allowed :-(
                [/\*\//, { token: 'comment.quote', next: '@pop' }],
                [/./, 'comment']
            ],
            numbers: [
                [/0[xX][0-9a-fA-F]*/, 'number'],
                [/[$][+-]*\d*(\.\d*)?/, 'number'],
                [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
            ],
            strings: [
                [/'/, { token: 'string', next: '@string' }],
                [/"/, { token: 'string.double', next: '@stringDouble' }]
            ],
            string: [
                [/[^']+/, 'string'],
                [/''/, 'string'],
                [/'/, { token: 'string', next: '@pop' }]
            ],
            stringDouble: [
                [/[^"]+/, 'string.double'],
                [/""/, 'string.double'],
                [/"/, { token: 'string.double', next: '@pop' }]
            ],
            complexIdentifiers: [[/`/, { token: 'identifier.quote', next: '@quotedIdentifier' }]],
            quotedIdentifier: [
                [/[^`]+/, 'identifier'],
                [/``/, 'identifier'],
                [/`/, { token: 'identifier.quote', next: '@pop' }]
            ],
            scopes: [
            // NOT SUPPORTED
            ]
        }
    };
});

