mysql.js 25 KB

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