mysql.js 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. define('vs/basic-languages/mysql/mysql',["require", "exports"], function (require, exports) {
  6. "use strict";
  7. Object.defineProperty(exports, "__esModule", { value: true });
  8. exports.language = exports.conf = void 0;
  9. exports.conf = {
  10. comments: {
  11. lineComment: '--',
  12. blockComment: ['/*', '*/']
  13. },
  14. brackets: [
  15. ['{', '}'],
  16. ['[', ']'],
  17. ['(', ')']
  18. ],
  19. autoClosingPairs: [
  20. { open: '{', close: '}' },
  21. { open: '[', close: ']' },
  22. { open: '(', close: ')' },
  23. { open: '"', close: '"' },
  24. { open: "'", close: "'" }
  25. ],
  26. surroundingPairs: [
  27. { open: '{', close: '}' },
  28. { open: '[', close: ']' },
  29. { open: '(', close: ')' },
  30. { open: '"', close: '"' },
  31. { open: "'", close: "'" }
  32. ]
  33. };
  34. exports.language = {
  35. defaultToken: '',
  36. tokenPostfix: '.sql',
  37. ignoreCase: true,
  38. brackets: [
  39. { open: '[', close: ']', token: 'delimiter.square' },
  40. { open: '(', close: ')', token: 'delimiter.parenthesis' }
  41. ],
  42. keywords: [
  43. 'ACCESSIBLE',
  44. 'ACCOUNT',
  45. 'ACTION',
  46. 'ADD',
  47. 'AFTER',
  48. 'AGAINST',
  49. 'AGGREGATE',
  50. 'ALGORITHM',
  51. 'ALL',
  52. 'ALTER',
  53. 'ALWAYS',
  54. 'ANALYSE',
  55. 'ANALYZE',
  56. 'AND',
  57. 'ANY',
  58. 'AS',
  59. 'ASC',
  60. 'ASCII',
  61. 'ASENSITIVE',
  62. 'AT',
  63. 'AUTOEXTEND_SIZE',
  64. 'AUTO_INCREMENT',
  65. 'AVG',
  66. 'AVG_ROW_LENGTH',
  67. 'BACKUP',
  68. 'BEFORE',
  69. 'BEGIN',
  70. 'BETWEEN',
  71. 'BIGINT',
  72. 'BINARY',
  73. 'BINLOG',
  74. 'BIT',
  75. 'BLOB',
  76. 'BLOCK',
  77. 'BOOL',
  78. 'BOOLEAN',
  79. 'BOTH',
  80. 'BTREE',
  81. 'BY',
  82. 'BYTE',
  83. 'CACHE',
  84. 'CALL',
  85. 'CASCADE',
  86. 'CASCADED',
  87. 'CASE',
  88. 'CATALOG_NAME',
  89. 'CHAIN',
  90. 'CHANGE',
  91. 'CHANGED',
  92. 'CHANNEL',
  93. 'CHAR',
  94. 'CHARACTER',
  95. 'CHARSET',
  96. 'CHECK',
  97. 'CHECKSUM',
  98. 'CIPHER',
  99. 'CLASS_ORIGIN',
  100. 'CLIENT',
  101. 'CLOSE',
  102. 'COALESCE',
  103. 'CODE',
  104. 'COLLATE',
  105. 'COLLATION',
  106. 'COLUMN',
  107. 'COLUMNS',
  108. 'COLUMN_FORMAT',
  109. 'COLUMN_NAME',
  110. 'COMMENT',
  111. 'COMMIT',
  112. 'COMMITTED',
  113. 'COMPACT',
  114. 'COMPLETION',
  115. 'COMPRESSED',
  116. 'COMPRESSION',
  117. 'CONCURRENT',
  118. 'CONDITION',
  119. 'CONNECTION',
  120. 'CONSISTENT',
  121. 'CONSTRAINT',
  122. 'CONSTRAINT_CATALOG',
  123. 'CONSTRAINT_NAME',
  124. 'CONSTRAINT_SCHEMA',
  125. 'CONTAINS',
  126. 'CONTEXT',
  127. 'CONTINUE',
  128. 'CONVERT',
  129. 'CPU',
  130. 'CREATE',
  131. 'CROSS',
  132. 'CUBE',
  133. 'CURRENT',
  134. 'CURRENT_DATE',
  135. 'CURRENT_TIME',
  136. 'CURRENT_TIMESTAMP',
  137. 'CURRENT_USER',
  138. 'CURSOR',
  139. 'CURSOR_NAME',
  140. 'DATA',
  141. 'DATABASE',
  142. 'DATABASES',
  143. 'DATAFILE',
  144. 'DATE',
  145. 'DATETIME',
  146. 'DAY',
  147. 'DAY_HOUR',
  148. 'DAY_MICROSECOND',
  149. 'DAY_MINUTE',
  150. 'DAY_SECOND',
  151. 'DEALLOCATE',
  152. 'DEC',
  153. 'DECIMAL',
  154. 'DECLARE',
  155. 'DEFAULT',
  156. 'DEFAULT_AUTH',
  157. 'DEFINER',
  158. 'DELAYED',
  159. 'DELAY_KEY_WRITE',
  160. 'DELETE',
  161. 'DESC',
  162. 'DESCRIBE',
  163. 'DES_KEY_FILE',
  164. 'DETERMINISTIC',
  165. 'DIAGNOSTICS',
  166. 'DIRECTORY',
  167. 'DISABLE',
  168. 'DISCARD',
  169. 'DISK',
  170. 'DISTINCT',
  171. 'DISTINCTROW',
  172. 'DIV',
  173. 'DO',
  174. 'DOUBLE',
  175. 'DROP',
  176. 'DUAL',
  177. 'DUMPFILE',
  178. 'DUPLICATE',
  179. 'DYNAMIC',
  180. 'EACH',
  181. 'ELSE',
  182. 'ELSEIF',
  183. 'ENABLE',
  184. 'ENCLOSED',
  185. 'ENCRYPTION',
  186. 'END',
  187. 'ENDS',
  188. 'ENGINE',
  189. 'ENGINES',
  190. 'ENUM',
  191. 'ERROR',
  192. 'ERRORS',
  193. 'ESCAPE',
  194. 'ESCAPED',
  195. 'EVENT',
  196. 'EVENTS',
  197. 'EVERY',
  198. 'EXCHANGE',
  199. 'EXECUTE',
  200. 'EXISTS',
  201. 'EXIT',
  202. 'EXPANSION',
  203. 'EXPIRE',
  204. 'EXPLAIN',
  205. 'EXPORT',
  206. 'EXTENDED',
  207. 'EXTENT_SIZE',
  208. 'FALSE',
  209. 'FAST',
  210. 'FAULTS',
  211. 'FETCH',
  212. 'FIELDS',
  213. 'FILE',
  214. 'FILE_BLOCK_SIZE',
  215. 'FILTER',
  216. 'FIRST',
  217. 'FIXED',
  218. 'FLOAT',
  219. 'FLOAT4',
  220. 'FLOAT8',
  221. 'FLUSH',
  222. 'FOLLOWS',
  223. 'FOR',
  224. 'FORCE',
  225. 'FOREIGN',
  226. 'FORMAT',
  227. 'FOUND',
  228. 'FROM',
  229. 'FULL',
  230. 'FULLTEXT',
  231. 'FUNCTION',
  232. 'GENERAL',
  233. 'GENERATED',
  234. 'GEOMETRY',
  235. 'GEOMETRYCOLLECTION',
  236. 'GET',
  237. 'GET_FORMAT',
  238. 'GLOBAL',
  239. 'GRANT',
  240. 'GRANTS',
  241. 'GROUP',
  242. 'GROUP_REPLICATION',
  243. 'HANDLER',
  244. 'HASH',
  245. 'HAVING',
  246. 'HELP',
  247. 'HIGH_PRIORITY',
  248. 'HOST',
  249. 'HOSTS',
  250. 'HOUR',
  251. 'HOUR_MICROSECOND',
  252. 'HOUR_MINUTE',
  253. 'HOUR_SECOND',
  254. 'IDENTIFIED',
  255. 'IF',
  256. 'IGNORE',
  257. 'IGNORE_SERVER_IDS',
  258. 'IMPORT',
  259. 'INDEX',
  260. 'INDEXES',
  261. 'INFILE',
  262. 'INITIAL_SIZE',
  263. 'INNER',
  264. 'INOUT',
  265. 'INSENSITIVE',
  266. 'INSERT',
  267. 'INSERT_METHOD',
  268. 'INSTALL',
  269. 'INSTANCE',
  270. 'INT',
  271. 'INT1',
  272. 'INT2',
  273. 'INT3',
  274. 'INT4',
  275. 'INT8',
  276. 'INTEGER',
  277. 'INTERVAL',
  278. 'INTO',
  279. 'INVOKER',
  280. 'IO',
  281. 'IO_AFTER_GTIDS',
  282. 'IO_BEFORE_GTIDS',
  283. 'IO_THREAD',
  284. 'IPC',
  285. 'ISOLATION',
  286. 'ISSUER',
  287. 'ITERATE',
  288. 'JOIN',
  289. 'JSON',
  290. 'KEY',
  291. 'KEYS',
  292. 'KEY_BLOCK_SIZE',
  293. 'KILL',
  294. 'LANGUAGE',
  295. 'LAST',
  296. 'LEADING',
  297. 'LEAVE',
  298. 'LEAVES',
  299. 'LEFT',
  300. 'LESS',
  301. 'LEVEL',
  302. 'LIKE',
  303. 'LIMIT',
  304. 'LINEAR',
  305. 'LINES',
  306. 'LINESTRING',
  307. 'LIST',
  308. 'LOAD',
  309. 'LOCAL',
  310. 'LOCALTIME',
  311. 'LOCALTIMESTAMP',
  312. 'LOCK',
  313. 'LOCKS',
  314. 'LOGFILE',
  315. 'LOGS',
  316. 'LONG',
  317. 'LONGBLOB',
  318. 'LONGTEXT',
  319. 'LOOP',
  320. 'LOW_PRIORITY',
  321. 'MASTER',
  322. 'MASTER_AUTO_POSITION',
  323. 'MASTER_BIND',
  324. 'MASTER_CONNECT_RETRY',
  325. 'MASTER_DELAY',
  326. 'MASTER_HEARTBEAT_PERIOD',
  327. 'MASTER_HOST',
  328. 'MASTER_LOG_FILE',
  329. 'MASTER_LOG_POS',
  330. 'MASTER_PASSWORD',
  331. 'MASTER_PORT',
  332. 'MASTER_RETRY_COUNT',
  333. 'MASTER_SERVER_ID',
  334. 'MASTER_SSL',
  335. 'MASTER_SSL_CA',
  336. 'MASTER_SSL_CAPATH',
  337. 'MASTER_SSL_CERT',
  338. 'MASTER_SSL_CIPHER',
  339. 'MASTER_SSL_CRL',
  340. 'MASTER_SSL_CRLPATH',
  341. 'MASTER_SSL_KEY',
  342. 'MASTER_SSL_VERIFY_SERVER_CERT',
  343. 'MASTER_TLS_VERSION',
  344. 'MASTER_USER',
  345. 'MATCH',
  346. 'MAXVALUE',
  347. 'MAX_CONNECTIONS_PER_HOUR',
  348. 'MAX_QUERIES_PER_HOUR',
  349. 'MAX_ROWS',
  350. 'MAX_SIZE',
  351. 'MAX_STATEMENT_TIME',
  352. 'MAX_UPDATES_PER_HOUR',
  353. 'MAX_USER_CONNECTIONS',
  354. 'MEDIUM',
  355. 'MEDIUMBLOB',
  356. 'MEDIUMINT',
  357. 'MEDIUMTEXT',
  358. 'MEMORY',
  359. 'MERGE',
  360. 'MESSAGE_TEXT',
  361. 'MICROSECOND',
  362. 'MIDDLEINT',
  363. 'MIGRATE',
  364. 'MINUTE',
  365. 'MINUTE_MICROSECOND',
  366. 'MINUTE_SECOND',
  367. 'MIN_ROWS',
  368. 'MOD',
  369. 'MODE',
  370. 'MODIFIES',
  371. 'MODIFY',
  372. 'MONTH',
  373. 'MULTILINESTRING',
  374. 'MULTIPOINT',
  375. 'MULTIPOLYGON',
  376. 'MUTEX',
  377. 'MYSQL_ERRNO',
  378. 'NAME',
  379. 'NAMES',
  380. 'NATIONAL',
  381. 'NATURAL',
  382. 'NCHAR',
  383. 'NDB',
  384. 'NDBCLUSTER',
  385. 'NEVER',
  386. 'NEW',
  387. 'NEXT',
  388. 'NO',
  389. 'NODEGROUP',
  390. 'NONBLOCKING',
  391. 'NONE',
  392. 'NO_WAIT',
  393. 'NO_WRITE_TO_BINLOG',
  394. 'NUMBER',
  395. 'NUMERIC',
  396. 'NVARCHAR',
  397. 'OFFSET',
  398. 'OLD_PASSWORD',
  399. 'ON',
  400. 'ONE',
  401. 'ONLY',
  402. 'OPEN',
  403. 'OPTIMIZE',
  404. 'OPTIMIZER_COSTS',
  405. 'OPTION',
  406. 'OPTIONALLY',
  407. 'OPTIONS',
  408. 'OR',
  409. 'ORDER',
  410. 'OUT',
  411. 'OUTER',
  412. 'OUTFILE',
  413. 'OWNER',
  414. 'PACK_KEYS',
  415. 'PAGE',
  416. 'PARSER',
  417. 'PARSE_GCOL_EXPR',
  418. 'PARTIAL',
  419. 'PARTITION',
  420. 'PARTITIONING',
  421. 'PARTITIONS',
  422. 'PASSWORD',
  423. 'PHASE',
  424. 'PLUGIN',
  425. 'PLUGINS',
  426. 'PLUGIN_DIR',
  427. 'POINT',
  428. 'POLYGON',
  429. 'PORT',
  430. 'PRECEDES',
  431. 'PRECISION',
  432. 'PREPARE',
  433. 'PRESERVE',
  434. 'PREV',
  435. 'PRIMARY',
  436. 'PRIVILEGES',
  437. 'PROCEDURE',
  438. 'PROCESSLIST',
  439. 'PROFILE',
  440. 'PROFILES',
  441. 'PROXY',
  442. 'PURGE',
  443. 'QUARTER',
  444. 'QUERY',
  445. 'QUICK',
  446. 'RANGE',
  447. 'READ',
  448. 'READS',
  449. 'READ_ONLY',
  450. 'READ_WRITE',
  451. 'REAL',
  452. 'REBUILD',
  453. 'RECOVER',
  454. 'REDOFILE',
  455. 'REDO_BUFFER_SIZE',
  456. 'REDUNDANT',
  457. 'REFERENCES',
  458. 'REGEXP',
  459. 'RELAY',
  460. 'RELAYLOG',
  461. 'RELAY_LOG_FILE',
  462. 'RELAY_LOG_POS',
  463. 'RELAY_THREAD',
  464. 'RELEASE',
  465. 'RELOAD',
  466. 'REMOVE',
  467. 'RENAME',
  468. 'REORGANIZE',
  469. 'REPAIR',
  470. 'REPEAT',
  471. 'REPEATABLE',
  472. 'REPLACE',
  473. 'REPLICATE_DO_DB',
  474. 'REPLICATE_DO_TABLE',
  475. 'REPLICATE_IGNORE_DB',
  476. 'REPLICATE_IGNORE_TABLE',
  477. 'REPLICATE_REWRITE_DB',
  478. 'REPLICATE_WILD_DO_TABLE',
  479. 'REPLICATE_WILD_IGNORE_TABLE',
  480. 'REPLICATION',
  481. 'REQUIRE',
  482. 'RESET',
  483. 'RESIGNAL',
  484. 'RESTORE',
  485. 'RESTRICT',
  486. 'RESUME',
  487. 'RETURN',
  488. 'RETURNED_SQLSTATE',
  489. 'RETURNS',
  490. 'REVERSE',
  491. 'REVOKE',
  492. 'RIGHT',
  493. 'RLIKE',
  494. 'ROLLBACK',
  495. 'ROLLUP',
  496. 'ROTATE',
  497. 'ROUTINE',
  498. 'ROW',
  499. 'ROWS',
  500. 'ROW_COUNT',
  501. 'ROW_FORMAT',
  502. 'RTREE',
  503. 'SAVEPOINT',
  504. 'SCHEDULE',
  505. 'SCHEMA',
  506. 'SCHEMAS',
  507. 'SCHEMA_NAME',
  508. 'SECOND',
  509. 'SECOND_MICROSECOND',
  510. 'SECURITY',
  511. 'SELECT',
  512. 'SENSITIVE',
  513. 'SEPARATOR',
  514. 'SERIAL',
  515. 'SERIALIZABLE',
  516. 'SERVER',
  517. 'SESSION',
  518. 'SET',
  519. 'SHARE',
  520. 'SHOW',
  521. 'SHUTDOWN',
  522. 'SIGNAL',
  523. 'SIGNED',
  524. 'SIMPLE',
  525. 'SLAVE',
  526. 'SLOW',
  527. 'SMALLINT',
  528. 'SNAPSHOT',
  529. 'SOCKET',
  530. 'SOME',
  531. 'SONAME',
  532. 'SOUNDS',
  533. 'SOURCE',
  534. 'SPATIAL',
  535. 'SPECIFIC',
  536. 'SQL',
  537. 'SQLEXCEPTION',
  538. 'SQLSTATE',
  539. 'SQLWARNING',
  540. 'SQL_AFTER_GTIDS',
  541. 'SQL_AFTER_MTS_GAPS',
  542. 'SQL_BEFORE_GTIDS',
  543. 'SQL_BIG_RESULT',
  544. 'SQL_BUFFER_RESULT',
  545. 'SQL_CACHE',
  546. 'SQL_CALC_FOUND_ROWS',
  547. 'SQL_NO_CACHE',
  548. 'SQL_SMALL_RESULT',
  549. 'SQL_THREAD',
  550. 'SQL_TSI_DAY',
  551. 'SQL_TSI_HOUR',
  552. 'SQL_TSI_MINUTE',
  553. 'SQL_TSI_MONTH',
  554. 'SQL_TSI_QUARTER',
  555. 'SQL_TSI_SECOND',
  556. 'SQL_TSI_WEEK',
  557. 'SQL_TSI_YEAR',
  558. 'SSL',
  559. 'STACKED',
  560. 'START',
  561. 'STARTING',
  562. 'STARTS',
  563. 'STATS_AUTO_RECALC',
  564. 'STATS_PERSISTENT',
  565. 'STATS_SAMPLE_PAGES',
  566. 'STATUS',
  567. 'STOP',
  568. 'STORAGE',
  569. 'STORED',
  570. 'STRAIGHT_JOIN',
  571. 'STRING',
  572. 'SUBCLASS_ORIGIN',
  573. 'SUBJECT',
  574. 'SUBPARTITION',
  575. 'SUBPARTITIONS',
  576. 'SUPER',
  577. 'SUSPEND',
  578. 'SWAPS',
  579. 'SWITCHES',
  580. 'TABLE',
  581. 'TABLES',
  582. 'TABLESPACE',
  583. 'TABLE_CHECKSUM',
  584. 'TABLE_NAME',
  585. 'TEMPORARY',
  586. 'TEMPTABLE',
  587. 'TERMINATED',
  588. 'TEXT',
  589. 'THAN',
  590. 'THEN',
  591. 'TIME',
  592. 'TIMESTAMP',
  593. 'TIMESTAMPADD',
  594. 'TIMESTAMPDIFF',
  595. 'TINYBLOB',
  596. 'TINYINT',
  597. 'TINYTEXT',
  598. 'TO',
  599. 'TRAILING',
  600. 'TRANSACTION',
  601. 'TRIGGER',
  602. 'TRIGGERS',
  603. 'TRUE',
  604. 'TRUNCATE',
  605. 'TYPE',
  606. 'TYPES',
  607. 'UNCOMMITTED',
  608. 'UNDEFINED',
  609. 'UNDO',
  610. 'UNDOFILE',
  611. 'UNDO_BUFFER_SIZE',
  612. 'UNICODE',
  613. 'UNINSTALL',
  614. 'UNION',
  615. 'UNIQUE',
  616. 'UNKNOWN',
  617. 'UNLOCK',
  618. 'UNSIGNED',
  619. 'UNTIL',
  620. 'UPDATE',
  621. 'UPGRADE',
  622. 'USAGE',
  623. 'USE',
  624. 'USER',
  625. 'USER_RESOURCES',
  626. 'USE_FRM',
  627. 'USING',
  628. 'UTC_DATE',
  629. 'UTC_TIME',
  630. 'UTC_TIMESTAMP',
  631. 'VALIDATION',
  632. 'VALUE',
  633. 'VALUES',
  634. 'VARBINARY',
  635. 'VARCHAR',
  636. 'VARCHARACTER',
  637. 'VARIABLES',
  638. 'VARYING',
  639. 'VIEW',
  640. 'VIRTUAL',
  641. 'WAIT',
  642. 'WARNINGS',
  643. 'WEEK',
  644. 'WEIGHT_STRING',
  645. 'WHEN',
  646. 'WHERE',
  647. 'WHILE',
  648. 'WITH',
  649. 'WITHOUT',
  650. 'WORK',
  651. 'WRAPPER',
  652. 'WRITE',
  653. 'X509',
  654. 'XA',
  655. 'XID',
  656. 'XML',
  657. 'XOR',
  658. 'YEAR',
  659. 'YEAR_MONTH',
  660. 'ZEROFILL'
  661. ],
  662. operators: [
  663. 'AND',
  664. 'BETWEEN',
  665. 'IN',
  666. 'LIKE',
  667. 'NOT',
  668. 'OR',
  669. 'IS',
  670. 'NULL',
  671. 'INTERSECT',
  672. 'UNION',
  673. 'INNER',
  674. 'JOIN',
  675. 'LEFT',
  676. 'OUTER',
  677. 'RIGHT'
  678. ],
  679. builtinFunctions: [
  680. 'ABS',
  681. 'ACOS',
  682. 'ADDDATE',
  683. 'ADDTIME',
  684. 'AES_DECRYPT',
  685. 'AES_ENCRYPT',
  686. 'ANY_VALUE',
  687. 'Area',
  688. 'AsBinary',
  689. 'AsWKB',
  690. 'ASCII',
  691. 'ASIN',
  692. 'AsText',
  693. 'AsWKT',
  694. 'ASYMMETRIC_DECRYPT',
  695. 'ASYMMETRIC_DERIVE',
  696. 'ASYMMETRIC_ENCRYPT',
  697. 'ASYMMETRIC_SIGN',
  698. 'ASYMMETRIC_VERIFY',
  699. 'ATAN',
  700. 'ATAN2',
  701. 'ATAN',
  702. 'AVG',
  703. 'BENCHMARK',
  704. 'BIN',
  705. 'BIT_AND',
  706. 'BIT_COUNT',
  707. 'BIT_LENGTH',
  708. 'BIT_OR',
  709. 'BIT_XOR',
  710. 'Buffer',
  711. 'CAST',
  712. 'CEIL',
  713. 'CEILING',
  714. 'Centroid',
  715. 'CHAR',
  716. 'CHAR_LENGTH',
  717. 'CHARACTER_LENGTH',
  718. 'CHARSET',
  719. 'COALESCE',
  720. 'COERCIBILITY',
  721. 'COLLATION',
  722. 'COMPRESS',
  723. 'CONCAT',
  724. 'CONCAT_WS',
  725. 'CONNECTION_ID',
  726. 'Contains',
  727. 'CONV',
  728. 'CONVERT',
  729. 'CONVERT_TZ',
  730. 'ConvexHull',
  731. 'COS',
  732. 'COT',
  733. 'COUNT',
  734. 'CRC32',
  735. 'CREATE_ASYMMETRIC_PRIV_KEY',
  736. 'CREATE_ASYMMETRIC_PUB_KEY',
  737. 'CREATE_DH_PARAMETERS',
  738. 'CREATE_DIGEST',
  739. 'Crosses',
  740. 'CURDATE',
  741. 'CURRENT_DATE',
  742. 'CURRENT_TIME',
  743. 'CURRENT_TIMESTAMP',
  744. 'CURRENT_USER',
  745. 'CURTIME',
  746. 'DATABASE',
  747. 'DATE',
  748. 'DATE_ADD',
  749. 'DATE_FORMAT',
  750. 'DATE_SUB',
  751. 'DATEDIFF',
  752. 'DAY',
  753. 'DAYNAME',
  754. 'DAYOFMONTH',
  755. 'DAYOFWEEK',
  756. 'DAYOFYEAR',
  757. 'DECODE',
  758. 'DEFAULT',
  759. 'DEGREES',
  760. 'DES_DECRYPT',
  761. 'DES_ENCRYPT',
  762. 'Dimension',
  763. 'Disjoint',
  764. 'Distance',
  765. 'ELT',
  766. 'ENCODE',
  767. 'ENCRYPT',
  768. 'EndPoint',
  769. 'Envelope',
  770. 'Equals',
  771. 'EXP',
  772. 'EXPORT_SET',
  773. 'ExteriorRing',
  774. 'EXTRACT',
  775. 'ExtractValue',
  776. 'FIELD',
  777. 'FIND_IN_SET',
  778. 'FLOOR',
  779. 'FORMAT',
  780. 'FOUND_ROWS',
  781. 'FROM_BASE64',
  782. 'FROM_DAYS',
  783. 'FROM_UNIXTIME',
  784. 'GeomCollFromText',
  785. 'GeometryCollectionFromText',
  786. 'GeomCollFromWKB',
  787. 'GeometryCollectionFromWKB',
  788. 'GeometryCollection',
  789. 'GeometryN',
  790. 'GeometryType',
  791. 'GeomFromText',
  792. 'GeometryFromText',
  793. 'GeomFromWKB',
  794. 'GeometryFromWKB',
  795. 'GET_FORMAT',
  796. 'GET_LOCK',
  797. 'GLength',
  798. 'GREATEST',
  799. 'GROUP_CONCAT',
  800. 'GTID_SUBSET',
  801. 'GTID_SUBTRACT',
  802. 'HEX',
  803. 'HOUR',
  804. 'IF',
  805. 'IFNULL',
  806. 'INET_ATON',
  807. 'INET_NTOA',
  808. 'INET6_ATON',
  809. 'INET6_NTOA',
  810. 'INSERT',
  811. 'INSTR',
  812. 'InteriorRingN',
  813. 'Intersects',
  814. 'INTERVAL',
  815. 'IS_FREE_LOCK',
  816. 'IS_IPV4',
  817. 'IS_IPV4_COMPAT',
  818. 'IS_IPV4_MAPPED',
  819. 'IS_IPV6',
  820. 'IS_USED_LOCK',
  821. 'IsClosed',
  822. 'IsEmpty',
  823. 'ISNULL',
  824. 'IsSimple',
  825. 'JSON_APPEND',
  826. 'JSON_ARRAY',
  827. 'JSON_ARRAY_APPEND',
  828. 'JSON_ARRAY_INSERT',
  829. 'JSON_CONTAINS',
  830. 'JSON_CONTAINS_PATH',
  831. 'JSON_DEPTH',
  832. 'JSON_EXTRACT',
  833. 'JSON_INSERT',
  834. 'JSON_KEYS',
  835. 'JSON_LENGTH',
  836. 'JSON_MERGE',
  837. 'JSON_MERGE_PRESERVE',
  838. 'JSON_OBJECT',
  839. 'JSON_QUOTE',
  840. 'JSON_REMOVE',
  841. 'JSON_REPLACE',
  842. 'JSON_SEARCH',
  843. 'JSON_SET',
  844. 'JSON_TYPE',
  845. 'JSON_UNQUOTE',
  846. 'JSON_VALID',
  847. 'LAST_INSERT_ID',
  848. 'LCASE',
  849. 'LEAST',
  850. 'LEFT',
  851. 'LENGTH',
  852. 'LineFromText',
  853. 'LineStringFromText',
  854. 'LineFromWKB',
  855. 'LineStringFromWKB',
  856. 'LineString',
  857. 'LN',
  858. 'LOAD_FILE',
  859. 'LOCALTIME',
  860. 'LOCALTIMESTAMP',
  861. 'LOCATE',
  862. 'LOG',
  863. 'LOG10',
  864. 'LOG2',
  865. 'LOWER',
  866. 'LPAD',
  867. 'LTRIM',
  868. 'MAKE_SET',
  869. 'MAKEDATE',
  870. 'MAKETIME',
  871. 'MASTER_POS_WAIT',
  872. 'MAX',
  873. 'MBRContains',
  874. 'MBRCoveredBy',
  875. 'MBRCovers',
  876. 'MBRDisjoint',
  877. 'MBREqual',
  878. 'MBREquals',
  879. 'MBRIntersects',
  880. 'MBROverlaps',
  881. 'MBRTouches',
  882. 'MBRWithin',
  883. 'MD5',
  884. 'MICROSECOND',
  885. 'MID',
  886. 'MIN',
  887. 'MINUTE',
  888. 'MLineFromText',
  889. 'MultiLineStringFromText',
  890. 'MLineFromWKB',
  891. 'MultiLineStringFromWKB',
  892. 'MOD',
  893. 'MONTH',
  894. 'MONTHNAME',
  895. 'MPointFromText',
  896. 'MultiPointFromText',
  897. 'MPointFromWKB',
  898. 'MultiPointFromWKB',
  899. 'MPolyFromText',
  900. 'MultiPolygonFromText',
  901. 'MPolyFromWKB',
  902. 'MultiPolygonFromWKB',
  903. 'MultiLineString',
  904. 'MultiPoint',
  905. 'MultiPolygon',
  906. 'NAME_CONST',
  907. 'NOT IN',
  908. 'NOW',
  909. 'NULLIF',
  910. 'NumGeometries',
  911. 'NumInteriorRings',
  912. 'NumPoints',
  913. 'OCT',
  914. 'OCTET_LENGTH',
  915. 'OLD_PASSWORD',
  916. 'ORD',
  917. 'Overlaps',
  918. 'PASSWORD',
  919. 'PERIOD_ADD',
  920. 'PERIOD_DIFF',
  921. 'PI',
  922. 'Point',
  923. 'PointFromText',
  924. 'PointFromWKB',
  925. 'PointN',
  926. 'PolyFromText',
  927. 'PolygonFromText',
  928. 'PolyFromWKB',
  929. 'PolygonFromWKB',
  930. 'Polygon',
  931. 'POSITION',
  932. 'POW',
  933. 'POWER',
  934. 'PROCEDURE ANALYSE',
  935. 'QUARTER',
  936. 'QUOTE',
  937. 'RADIANS',
  938. 'RAND',
  939. 'RANDOM_BYTES',
  940. 'RELEASE_ALL_LOCKS',
  941. 'RELEASE_LOCK',
  942. 'REPEAT',
  943. 'REPLACE',
  944. 'REVERSE',
  945. 'RIGHT',
  946. 'ROUND',
  947. 'ROW_COUNT',
  948. 'RPAD',
  949. 'RTRIM',
  950. 'SCHEMA',
  951. 'SEC_TO_TIME',
  952. 'SECOND',
  953. 'SESSION_USER',
  954. 'SHA1',
  955. 'SHA',
  956. 'SHA2',
  957. 'SIGN',
  958. 'SIN',
  959. 'SLEEP',
  960. 'SOUNDEX',
  961. 'SPACE',
  962. 'SQRT',
  963. 'SRID',
  964. 'ST_Area',
  965. 'ST_AsBinary',
  966. 'ST_AsWKB',
  967. 'ST_AsGeoJSON',
  968. 'ST_AsText',
  969. 'ST_AsWKT',
  970. 'ST_Buffer',
  971. 'ST_Buffer_Strategy',
  972. 'ST_Centroid',
  973. 'ST_Contains',
  974. 'ST_ConvexHull',
  975. 'ST_Crosses',
  976. 'ST_Difference',
  977. 'ST_Dimension',
  978. 'ST_Disjoint',
  979. 'ST_Distance',
  980. 'ST_Distance_Sphere',
  981. 'ST_EndPoint',
  982. 'ST_Envelope',
  983. 'ST_Equals',
  984. 'ST_ExteriorRing',
  985. 'ST_GeoHash',
  986. 'ST_GeomCollFromText',
  987. 'ST_GeometryCollectionFromText',
  988. 'ST_GeomCollFromTxt',
  989. 'ST_GeomCollFromWKB',
  990. 'ST_GeometryCollectionFromWKB',
  991. 'ST_GeometryN',
  992. 'ST_GeometryType',
  993. 'ST_GeomFromGeoJSON',
  994. 'ST_GeomFromText',
  995. 'ST_GeometryFromText',
  996. 'ST_GeomFromWKB',
  997. 'ST_GeometryFromWKB',
  998. 'ST_InteriorRingN',
  999. 'ST_Intersection',
  1000. 'ST_Intersects',
  1001. 'ST_IsClosed',
  1002. 'ST_IsEmpty',
  1003. 'ST_IsSimple',
  1004. 'ST_IsValid',
  1005. 'ST_LatFromGeoHash',
  1006. 'ST_Length',
  1007. 'ST_LineFromText',
  1008. 'ST_LineStringFromText',
  1009. 'ST_LineFromWKB',
  1010. 'ST_LineStringFromWKB',
  1011. 'ST_LongFromGeoHash',
  1012. 'ST_MakeEnvelope',
  1013. 'ST_MLineFromText',
  1014. 'ST_MultiLineStringFromText',
  1015. 'ST_MLineFromWKB',
  1016. 'ST_MultiLineStringFromWKB',
  1017. 'ST_MPointFromText',
  1018. 'ST_MultiPointFromText',
  1019. 'ST_MPointFromWKB',
  1020. 'ST_MultiPointFromWKB',
  1021. 'ST_MPolyFromText',
  1022. 'ST_MultiPolygonFromText',
  1023. 'ST_MPolyFromWKB',
  1024. 'ST_MultiPolygonFromWKB',
  1025. 'ST_NumGeometries',
  1026. 'ST_NumInteriorRing',
  1027. 'ST_NumInteriorRings',
  1028. 'ST_NumPoints',
  1029. 'ST_Overlaps',
  1030. 'ST_PointFromGeoHash',
  1031. 'ST_PointFromText',
  1032. 'ST_PointFromWKB',
  1033. 'ST_PointN',
  1034. 'ST_PolyFromText',
  1035. 'ST_PolygonFromText',
  1036. 'ST_PolyFromWKB',
  1037. 'ST_PolygonFromWKB',
  1038. 'ST_Simplify',
  1039. 'ST_SRID',
  1040. 'ST_StartPoint',
  1041. 'ST_SymDifference',
  1042. 'ST_Touches',
  1043. 'ST_Union',
  1044. 'ST_Validate',
  1045. 'ST_Within',
  1046. 'ST_X',
  1047. 'ST_Y',
  1048. 'StartPoint',
  1049. 'STD',
  1050. 'STDDEV',
  1051. 'STDDEV_POP',
  1052. 'STDDEV_SAMP',
  1053. 'STR_TO_DATE',
  1054. 'STRCMP',
  1055. 'SUBDATE',
  1056. 'SUBSTR',
  1057. 'SUBSTRING',
  1058. 'SUBSTRING_INDEX',
  1059. 'SUBTIME',
  1060. 'SUM',
  1061. 'SYSDATE',
  1062. 'SYSTEM_USER',
  1063. 'TAN',
  1064. 'TIME',
  1065. 'TIME_FORMAT',
  1066. 'TIME_TO_SEC',
  1067. 'TIMEDIFF',
  1068. 'TIMESTAMP',
  1069. 'TIMESTAMPADD',
  1070. 'TIMESTAMPDIFF',
  1071. 'TO_BASE64',
  1072. 'TO_DAYS',
  1073. 'TO_SECONDS',
  1074. 'Touches',
  1075. 'TRIM',
  1076. 'TRUNCATE',
  1077. 'UCASE',
  1078. 'UNCOMPRESS',
  1079. 'UNCOMPRESSED_LENGTH',
  1080. 'UNHEX',
  1081. 'UNIX_TIMESTAMP',
  1082. 'UpdateXML',
  1083. 'UPPER',
  1084. 'USER',
  1085. 'UTC_DATE',
  1086. 'UTC_TIME',
  1087. 'UTC_TIMESTAMP',
  1088. 'UUID',
  1089. 'UUID_SHORT',
  1090. 'VALIDATE_PASSWORD_STRENGTH',
  1091. 'VALUES',
  1092. 'VAR_POP',
  1093. 'VAR_SAMP',
  1094. 'VARIANCE',
  1095. 'VERSION',
  1096. 'WAIT_FOR_EXECUTED_GTID_SET',
  1097. 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS',
  1098. 'WEEK',
  1099. 'WEEKDAY',
  1100. 'WEEKOFYEAR',
  1101. 'WEIGHT_STRING',
  1102. 'Within',
  1103. 'X',
  1104. 'Y',
  1105. 'YEAR',
  1106. 'YEARWEEK'
  1107. ],
  1108. builtinVariables: [
  1109. // NOT SUPPORTED
  1110. ],
  1111. tokenizer: {
  1112. root: [
  1113. { include: '@comments' },
  1114. { include: '@whitespace' },
  1115. { include: '@numbers' },
  1116. { include: '@strings' },
  1117. { include: '@complexIdentifiers' },
  1118. { include: '@scopes' },
  1119. [/[;,.]/, 'delimiter'],
  1120. [/[()]/, '@brackets'],
  1121. [
  1122. /[\w@]+/,
  1123. {
  1124. cases: {
  1125. '@keywords': 'keyword',
  1126. '@operators': 'operator',
  1127. '@builtinVariables': 'predefined',
  1128. '@builtinFunctions': 'predefined',
  1129. '@default': 'identifier'
  1130. }
  1131. }
  1132. ],
  1133. [/[<>=!%&+\-*/|~^]/, 'operator']
  1134. ],
  1135. whitespace: [[/\s+/, 'white']],
  1136. comments: [
  1137. [/--+.*/, 'comment'],
  1138. [/#+.*/, 'comment'],
  1139. [/\/\*/, { token: 'comment.quote', next: '@comment' }]
  1140. ],
  1141. comment: [
  1142. [/[^*/]+/, 'comment'],
  1143. // Not supporting nested comments, as nested comments seem to not be standard?
  1144. // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
  1145. // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
  1146. [/\*\//, { token: 'comment.quote', next: '@pop' }],
  1147. [/./, 'comment']
  1148. ],
  1149. numbers: [
  1150. [/0[xX][0-9a-fA-F]*/, 'number'],
  1151. [/[$][+-]*\d*(\.\d*)?/, 'number'],
  1152. [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
  1153. ],
  1154. strings: [
  1155. [/'/, { token: 'string', next: '@string' }],
  1156. [/"/, { token: 'string.double', next: '@stringDouble' }]
  1157. ],
  1158. string: [
  1159. [/[^']+/, 'string'],
  1160. [/''/, 'string'],
  1161. [/'/, { token: 'string', next: '@pop' }]
  1162. ],
  1163. stringDouble: [
  1164. [/[^"]+/, 'string.double'],
  1165. [/""/, 'string.double'],
  1166. [/"/, { token: 'string.double', next: '@pop' }]
  1167. ],
  1168. complexIdentifiers: [[/`/, { token: 'identifier.quote', next: '@quotedIdentifier' }]],
  1169. quotedIdentifier: [
  1170. [/[^`]+/, 'identifier'],
  1171. [/``/, 'identifier'],
  1172. [/`/, { token: 'identifier.quote', next: '@pop' }]
  1173. ],
  1174. scopes: [
  1175. // NOT SUPPORTED
  1176. ]
  1177. }
  1178. };
  1179. });