sqlparser.data.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * SQL Parser Matching Data
  5. *
  6. * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
  7. * http://www.orbis-terrarum.net/?l=people.robbat2
  8. *
  9. * This data is used by the SQL Parser to recognize keywords
  10. *
  11. * It has been extracted from the lex.h file in the MySQL BK tree
  12. * (around 4.0.2) as well as the MySQL documentation.
  13. *
  14. * It's easier to use only uppercase for proper sorting. In case of
  15. * doubt, use the test case to verify.
  16. *
  17. * @package PhpMyAdmin
  18. */
  19. if (! defined('PHPMYADMIN')) {
  20. exit;
  21. }
  22. if (! isset($GLOBALS['sql_delimiter'])) {
  23. $GLOBALS['sql_delimiter'] = ';';
  24. }
  25. /**
  26. * @global array MySQL function names
  27. */
  28. $PMA_SQPdata_function_name = array (
  29. 'ABS',
  30. 'ACOS',
  31. 'ADDDATE',
  32. 'ADDTIME',
  33. 'AES_DECRYPT',
  34. 'AES_ENCRYPT',
  35. 'AREA', // polygon-property-functions.html
  36. 'ASBINARY',
  37. 'ASCII',
  38. 'ASIN',
  39. 'ASTEXT',
  40. 'ATAN',
  41. 'ATAN2',
  42. 'AVG',
  43. 'BDMPOLYFROMTEXT',
  44. 'BDMPOLYFROMWKB',
  45. 'BDPOLYFROMTEXT',
  46. 'BDPOLYFROMWKB',
  47. 'BENCHMARK',
  48. 'BIN',
  49. 'BIT_AND',
  50. 'BIT_COUNT',
  51. 'BIT_LENGTH',
  52. 'BIT_OR',
  53. 'BIT_XOR', // group-by-functions.html
  54. 'BOUNDARY', // general-geometry-property-functions.html
  55. 'BUFFER',
  56. 'CAST',
  57. 'CEIL',
  58. 'CEILING',
  59. 'CENTROID', // multipolygon-property-functions.html
  60. 'CHAR', // string-functions.html
  61. 'CHARACTER_LENGTH',
  62. 'CHARSET', // information-functions.html
  63. 'CHAR_LENGTH',
  64. 'COALESCE',
  65. 'COERCIBILITY', // information-functions.html
  66. 'COLLATION', // information-functions.html
  67. 'COMPRESS', // string-functions.html
  68. 'CONCAT',
  69. 'CONCAT_WS',
  70. 'CONNECTION_ID',
  71. 'CONTAINS',
  72. 'CONV',
  73. 'CONVERT',
  74. 'CONVERT_TZ',
  75. 'CONVEXHULL',
  76. 'COS',
  77. 'COT',
  78. 'COUNT',
  79. 'CRC32', // mathematical-functions.html
  80. 'CROSSES',
  81. 'CURDATE',
  82. 'CURRENT_DATE',
  83. 'CURRENT_TIME',
  84. 'CURRENT_TIMESTAMP',
  85. 'CURRENT_USER',
  86. 'CURTIME',
  87. 'DATABASE',
  88. 'DATE', // date-and-time-functions.html
  89. 'DATEDIFF', // date-and-time-functions.html
  90. 'DATE_ADD',
  91. 'DATE_DIFF',
  92. 'DATE_FORMAT',
  93. 'DATE_SUB',
  94. 'DAY',
  95. 'DAYNAME',
  96. 'DAYOFMONTH',
  97. 'DAYOFWEEK',
  98. 'DAYOFYEAR',
  99. 'DECODE',
  100. 'DEFAULT', // miscellaneous-functions.html
  101. 'DEGREES',
  102. 'DES_DECRYPT',
  103. 'DES_ENCRYPT',
  104. 'DIFFERENCE',
  105. 'DIMENSION', // general-geometry-property-functions.html
  106. 'DISJOINT',
  107. 'DISTANCE',
  108. 'ELT',
  109. 'ENCODE',
  110. 'ENCRYPT',
  111. 'ENDPOINT', // linestring-property-functions.html
  112. 'ENVELOPE', // general-geometry-property-functions.html
  113. 'EQUALS',
  114. 'EXP',
  115. 'EXPORT_SET',
  116. 'EXTERIORRING', // polygon-property-functions.html
  117. 'EXTRACT',
  118. 'EXTRACTVALUE', // xml-functions.html
  119. 'FIELD',
  120. 'FIND_IN_SET',
  121. 'FLOOR',
  122. 'FORMAT',
  123. 'FOUND_ROWS',
  124. 'FROM_DAYS',
  125. 'FROM_UNIXTIME',
  126. 'GEOMCOLLFROMTEXT',
  127. 'GEOMCOLLFROMWKB',
  128. 'GEOMETRYCOLLECTION',
  129. 'GEOMETRYCOLLECTIONFROMTEXT',
  130. 'GEOMETRYCOLLECTIONFROMWKB',
  131. 'GEOMETRYFROMTEXT',
  132. 'GEOMETRYFROMWKB',
  133. 'GEOMETRYN', // geometrycollection-property-functions.html
  134. 'GEOMETRYTYPE', // general-geometry-property-functions.html
  135. 'GEOMFROMTEXT',
  136. 'GEOMFROMWKB',
  137. 'GET_FORMAT',
  138. 'GET_LOCK',
  139. 'GLENGTH', // linestring-property-functions.html
  140. 'GREATEST',
  141. 'GROUP_CONCAT',
  142. 'GROUP_UNIQUE_USERS',
  143. 'HEX',
  144. 'HOUR',
  145. 'IF', //control-flow-functions.html
  146. 'IFNULL',
  147. 'INET_ATON',
  148. 'INET_NTOA',
  149. 'INSERT', // string-functions.html
  150. 'INSTR',
  151. 'INTERIORRINGN', // polygon-property-functions.html
  152. 'INTERSECTION',
  153. 'INTERSECTS',
  154. 'INTERVAL',
  155. 'ISCLOSED', // multilinestring-property-functions.html
  156. 'ISEMPTY', // general-geometry-property-functions.html
  157. 'ISNULL',
  158. 'ISRING', // linestring-property-functions.html
  159. 'ISSIMPLE', // general-geometry-property-functions.html
  160. 'IS_FREE_LOCK',
  161. 'IS_USED_LOCK', // miscellaneous-functions.html
  162. 'LAST_DAY',
  163. 'LAST_INSERT_ID',
  164. 'LCASE',
  165. 'LEAST',
  166. 'LEFT',
  167. 'LENGTH',
  168. 'LINEFROMTEXT',
  169. 'LINEFROMWKB',
  170. 'LINESTRING',
  171. 'LINESTRINGFROMTEXT',
  172. 'LINESTRINGFROMWKB',
  173. 'LN',
  174. 'LOAD_FILE',
  175. 'LOCALTIME',
  176. 'LOCALTIMESTAMP',
  177. 'LOCATE',
  178. 'LOG',
  179. 'LOG10',
  180. 'LOG2',
  181. 'LOWER',
  182. 'LPAD',
  183. 'LTRIM',
  184. 'MAKEDATE',
  185. 'MAKETIME',
  186. 'MAKE_SET',
  187. 'MASTER_POS_WAIT',
  188. 'MAX',
  189. 'MBRCONTAINS',
  190. 'MBRDISJOINT',
  191. 'MBREQUAL',
  192. 'MBRINTERSECTS',
  193. 'MBROVERLAPS',
  194. 'MBRTOUCHES',
  195. 'MBRWITHIN',
  196. 'MD5',
  197. 'MICROSECOND',
  198. 'MID',
  199. 'MIN',
  200. 'MINUTE',
  201. 'MLINEFROMTEXT',
  202. 'MLINEFROMWKB',
  203. 'MOD',
  204. 'MONTH',
  205. 'MONTHNAME',
  206. 'MPOINTFROMTEXT',
  207. 'MPOINTFROMWKB',
  208. 'MPOLYFROMTEXT',
  209. 'MPOLYFROMWKB',
  210. 'MULTILINESTRING',
  211. 'MULTILINESTRINGFROMTEXT',
  212. 'MULTILINESTRINGFROMWKB',
  213. 'MULTIPOINT',
  214. 'MULTIPOINTFROMTEXT',
  215. 'MULTIPOINTFROMWKB',
  216. 'MULTIPOLYGON',
  217. 'MULTIPOLYGONFROMTEXT',
  218. 'MULTIPOLYGONFROMWKB',
  219. 'NAME_CONST', // NAME_CONST()
  220. 'NOW',
  221. 'NULLIF',
  222. 'NUMGEOMETRIES', // geometrycollection-property-functions.html
  223. 'NUMINTERIORRINGS', // polygon-property-functions.html
  224. 'NUMPOINTS', // linestring-property-functions.html
  225. 'OCT',
  226. 'OCTET_LENGTH',
  227. 'OLD_PASSWORD',
  228. 'ORD',
  229. 'OVERLAPS',
  230. 'PASSWORD',
  231. 'PERIOD_ADD',
  232. 'PERIOD_DIFF',
  233. 'PI',
  234. 'POINT',
  235. 'POINTFROMTEXT',
  236. 'POINTFROMWKB',
  237. 'POINTN', // inestring-property-functions.html
  238. 'POINTONSURFACE', // multipolygon-property-functions.html
  239. 'POLYFROMTEXT',
  240. 'POLYFROMWKB',
  241. 'POLYGON',
  242. 'POLYGONFROMTEXT',
  243. 'POLYGONFROMWKB',
  244. 'POSITION',
  245. 'POW',
  246. 'POWER',
  247. 'QUARTER',
  248. 'QUOTE',
  249. 'RADIANS',
  250. 'RAND',
  251. 'RELATED',
  252. 'RELEASE_LOCK',
  253. 'REPEAT',
  254. 'REPLACE', // string-functions.html
  255. 'REVERSE',
  256. 'RIGHT',
  257. 'ROUND',
  258. 'ROW_COUNT', // information-functions.html
  259. 'RPAD',
  260. 'RTRIM',
  261. 'SCHEMA', // information-functions.html
  262. 'SECOND',
  263. 'SEC_TO_TIME',
  264. 'SESSION_USER',
  265. 'SHA',
  266. 'SHA1',
  267. 'SIGN',
  268. 'SIN',
  269. 'SLEEP', // miscellaneous-functions.html
  270. 'SOUNDEX',
  271. 'SPACE',
  272. 'SQRT',
  273. 'SRID', // general-geometry-property-functions.html
  274. 'STARTPOINT', // linestring-property-functions.html
  275. 'STD',
  276. 'STDDEV',
  277. 'STDDEV_POP', // group-by-functions.html
  278. 'STDDEV_SAMP', // group-by-functions.html
  279. 'STRCMP',
  280. 'STR_TO_DATE',
  281. 'SUBDATE',
  282. 'SUBSTR',
  283. 'SUBSTRING',
  284. 'SUBSTRING_INDEX',
  285. 'SUBTIME',
  286. 'SUM',
  287. 'SYMDIFFERENCE',
  288. 'SYSDATE',
  289. 'SYSTEM_USER',
  290. 'TAN',
  291. 'TIME',
  292. 'TIMEDIFF',
  293. 'TIMESTAMP',
  294. 'TIMESTAMPADD',
  295. 'TIMESTAMPDIFF',
  296. 'TIME_FORMAT',
  297. 'TIME_TO_SEC',
  298. 'TOUCHES',
  299. 'TO_DAYS',
  300. 'TRIM',
  301. 'TRUNCATE', // mathematical-functions.html
  302. 'UCASE',
  303. 'UNCOMPRESS', // string-functions.html
  304. 'UNCOMPRESSED_LENGTH', // string-functions.html
  305. 'UNHEX', // string-functions.html
  306. 'UNIQUE_USERS',
  307. 'UNIX_TIMESTAMP',
  308. 'UPDATEXML', // xml-functions.html
  309. 'UPPER',
  310. 'USER',
  311. 'UTC_DATE',
  312. 'UTC_TIME',
  313. 'UTC_TIMESTAMP',
  314. 'UUID', // miscellaneous-functions.html
  315. 'VARIANCE', // group-by-functions.html
  316. 'VAR_POP', // group-by-functions.html
  317. 'VAR_SAMP', // group-by-functions.html
  318. 'VERSION',
  319. 'WEEK',
  320. 'WEEKDAY',
  321. 'WEEKOFYEAR',
  322. 'WITHIN',
  323. 'X', // point-property-functions.html
  324. 'Y', // point-property-functions.html
  325. 'YEAR',
  326. 'YEARWEEK'
  327. );
  328. /**
  329. * @global array MySQL attributes
  330. */
  331. $PMA_SQPdata_column_attrib = array (
  332. 'ARCHIVE', // Engine
  333. 'ASCII',
  334. 'AUTO_INCREMENT',
  335. 'BDB', // Engine
  336. 'BERKELEYDB', // Engine alias BDB
  337. 'BINARY',
  338. 'BLACKHOLE', // Engine
  339. 'CSV', // Engine
  340. 'DEFAULT',
  341. 'EXAMPLE', // Engine
  342. 'FEDERATED', // Engine
  343. 'HEAP', // Engine
  344. 'INNOBASE', // Engine alias InnoDB
  345. 'INNODB', // Engine InnoDB
  346. 'ISAM', // Engine
  347. 'MARIA', // Engine
  348. 'MEMORY', // Engine alias HEAP, but preferred
  349. 'MERGE', // Engine
  350. 'MRG_ISAM', // Engine
  351. 'MRG_MYISAM', // Engine alias MERGE
  352. 'MYISAM', // Engine MyISAM
  353. 'NATIONAL',
  354. 'NDB', // Engine alias NDBCLUSTER
  355. 'NDBCLUSTER', // Engine
  356. 'PRECISION',
  357. 'UNDEFINED',
  358. 'UNICODE',
  359. 'UNSIGNED',
  360. 'VARYING',
  361. 'ZEROFILL'
  362. );
  363. /**
  364. * words that are reserved by MySQL and may not be used as identifiers without
  365. * quotes
  366. *
  367. * @see http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
  368. *
  369. * @global array MySQL reserved words
  370. */
  371. $PMA_SQPdata_reserved_word = array (
  372. 'ACCESSIBLE', // 5.1
  373. 'ACTION',
  374. 'ADD',
  375. 'AFTER',
  376. 'AGAINST',
  377. 'AGGREGATE',
  378. 'ALGORITHM',
  379. 'ALL',
  380. 'ALTER',
  381. 'ANALYSE',
  382. 'ANALYZE',
  383. 'AND',
  384. 'AS',
  385. 'ASC',
  386. 'AUTOCOMMIT',
  387. 'AUTO_INCREMENT',
  388. 'AVG_ROW_LENGTH',
  389. 'BACKUP',
  390. 'BEGIN',
  391. 'BETWEEN',
  392. 'BINLOG',
  393. 'BOTH',
  394. 'BY',
  395. 'CALL',
  396. 'CASCADE',
  397. 'CASE',
  398. 'CHANGE',
  399. 'CHANGED',
  400. 'CHARSET',
  401. 'CHECK',
  402. 'CHECKSUM',
  403. 'COLLATE',
  404. 'COLLATION',
  405. 'COLUMN',
  406. 'COLUMNS',
  407. 'COMMENT',
  408. 'COMMIT',
  409. 'COMMITTED',
  410. 'COMPRESSED',
  411. 'CONCURRENT',
  412. 'CONSTRAINT',
  413. 'CONTAINS',
  414. 'CONVERT',
  415. 'CREATE',
  416. 'CROSS',
  417. 'CURRENT_TIMESTAMP',
  418. 'DATABASE',
  419. 'DATABASES',
  420. 'DAY',
  421. 'DAY_HOUR',
  422. 'DAY_MINUTE',
  423. 'DAY_SECOND',
  424. 'DECLARE',
  425. 'DEFINER',
  426. 'DELAYED',
  427. 'DELAY_KEY_WRITE',
  428. 'DELETE',
  429. 'DESC',
  430. 'DESCRIBE',
  431. 'DETERMINISTIC',
  432. 'DISTINCT',
  433. 'DISTINCTROW',
  434. 'DIV',
  435. 'DO',
  436. 'DROP',
  437. 'DUMPFILE',
  438. 'DUPLICATE',
  439. 'DYNAMIC',
  440. 'ELSE',
  441. 'ENCLOSED',
  442. 'END',
  443. 'ENGINE',
  444. 'ENGINES',
  445. 'ESCAPE',
  446. 'ESCAPED',
  447. 'EVENTS',
  448. 'EXECUTE',
  449. 'EXISTS',
  450. 'EXPLAIN',
  451. 'EXTENDED',
  452. 'FALSE',
  453. 'FAST',
  454. 'FIELDS',
  455. 'FILE',
  456. 'FIRST',
  457. 'FIXED',
  458. 'FLUSH',
  459. 'FOR',
  460. 'FORCE',
  461. 'FOREIGN',
  462. 'FROM',
  463. 'FULL',
  464. 'FULLTEXT',
  465. 'FUNCTION',
  466. 'GEMINI',
  467. 'GEMINI_SPIN_RETRIES',
  468. 'GENERAL',
  469. 'GLOBAL',
  470. 'GRANT',
  471. 'GRANTS',
  472. 'GROUP',
  473. 'HAVING',
  474. 'HEAP',
  475. 'HIGH_PRIORITY',
  476. 'HOSTS',
  477. 'HOUR',
  478. 'HOUR_MINUTE',
  479. 'HOUR_SECOND',
  480. 'IDENTIFIED',
  481. 'IF',
  482. 'IGNORE',
  483. 'IGNORE_SERVER_IDS',
  484. 'IN',
  485. 'INDEX',
  486. 'INDEXES',
  487. 'INFILE',
  488. 'INNER',
  489. 'INSERT',
  490. 'INSERT_ID',
  491. 'INSERT_METHOD',
  492. 'INTERVAL',
  493. 'INTO',
  494. 'INVOKER',
  495. 'IS',
  496. 'ISOLATION',
  497. 'JOIN',
  498. 'KEY',
  499. 'KEYS',
  500. 'KILL',
  501. 'LAST_INSERT_ID',
  502. 'LEADING',
  503. 'LEFT',
  504. 'LIKE',
  505. 'LIMIT',
  506. 'LINEAR', // 5.1
  507. 'LINES',
  508. 'LOAD',
  509. 'LOCAL',
  510. 'LOCK',
  511. 'LOCKS',
  512. 'LOGS',
  513. 'LOW_PRIORITY',
  514. 'MARIA', // 5.1 ?
  515. 'MASTER_CONNECT_RETRY',
  516. 'MASTER_HEARTBEAT_PERIOD',
  517. 'MASTER_HOST',
  518. 'MASTER_LOG_FILE',
  519. 'MASTER_LOG_POS',
  520. 'MASTER_PASSWORD',
  521. 'MASTER_PORT',
  522. 'MASTER_USER',
  523. 'MATCH',
  524. 'MAXVALUE',
  525. 'MAX_CONNECTIONS_PER_HOUR',
  526. 'MAX_QUERIES_PER_HOUR',
  527. 'MAX_ROWS',
  528. 'MAX_UPDATES_PER_HOUR',
  529. 'MAX_USER_CONNECTIONS',
  530. 'MEDIUM',
  531. 'MERGE',
  532. 'MINUTE',
  533. 'MINUTE_SECOND',
  534. 'MIN_ROWS',
  535. 'MODE',
  536. 'MODIFY',
  537. 'MONTH',
  538. 'MRG_MYISAM',
  539. 'MYISAM',
  540. 'NAMES',
  541. 'NATURAL',
  542. // 'NO' is not allowed in SQL-99 but is allowed in MySQL
  543. //'NO',
  544. 'NOT',
  545. 'NULL',
  546. 'OFFSET',
  547. 'ON',
  548. 'OPEN',
  549. 'OPTIMIZE',
  550. 'OPTION',
  551. 'OPTIONALLY',
  552. 'OR',
  553. 'ORDER',
  554. 'OUTER',
  555. 'OUTFILE',
  556. 'PACK_KEYS',
  557. 'PAGE', // 5.1-maria ?
  558. 'PAGE_CHECKSUM', // 5.1
  559. 'PARTIAL',
  560. 'PARTITION', // 5.1
  561. 'PARTITIONS', // 5.1
  562. 'PASSWORD',
  563. 'PRIMARY',
  564. 'PRIVILEGES',
  565. 'PROCEDURE',
  566. 'PROCESS',
  567. 'PROCESSLIST',
  568. 'PURGE',
  569. 'QUICK',
  570. 'RAID0',
  571. 'RAID_CHUNKS',
  572. 'RAID_CHUNKSIZE',
  573. 'RAID_TYPE',
  574. 'RANGE', // 5.1
  575. 'READ',
  576. 'READ_ONLY', // 5.1
  577. 'READ_WRITE', // 5.1
  578. 'REFERENCES',
  579. 'REGEXP',
  580. 'RELOAD',
  581. 'RENAME',
  582. 'REPAIR',
  583. 'REPEATABLE',
  584. 'REPLACE',
  585. 'REPLICATION',
  586. 'RESET',
  587. 'RESIGNAL',
  588. 'RESTORE',
  589. 'RESTRICT',
  590. 'RETURN',
  591. 'RETURNS',
  592. 'REVOKE',
  593. 'RIGHT',
  594. 'RLIKE',
  595. 'ROLLBACK',
  596. 'ROW',
  597. 'ROWS',
  598. 'ROW_FORMAT',
  599. 'SECOND',
  600. 'SECURITY',
  601. 'SELECT',
  602. 'SEPARATOR',
  603. 'SERIALIZABLE',
  604. 'SESSION',
  605. 'SHARE',
  606. 'SHOW',
  607. 'SHUTDOWN',
  608. 'SIGNAL',
  609. 'SLAVE',
  610. 'SLOW',
  611. 'SONAME',
  612. 'SOUNDS', // string-functions.html
  613. 'SQL',
  614. 'SQL_AUTO_IS_NULL',
  615. 'SQL_BIG_RESULT',
  616. 'SQL_BIG_SELECTS',
  617. 'SQL_BIG_TABLES',
  618. 'SQL_BUFFER_RESULT',
  619. 'SQL_CACHE',
  620. 'SQL_CALC_FOUND_ROWS',
  621. 'SQL_LOG_BIN',
  622. 'SQL_LOG_OFF',
  623. 'SQL_LOG_UPDATE',
  624. 'SQL_LOW_PRIORITY_UPDATES',
  625. 'SQL_MAX_JOIN_SIZE',
  626. 'SQL_NO_CACHE',
  627. 'SQL_QUOTE_SHOW_CREATE',
  628. 'SQL_SAFE_UPDATES',
  629. 'SQL_SELECT_LIMIT',
  630. 'SQL_SLAVE_SKIP_COUNTER',
  631. 'SQL_SMALL_RESULT',
  632. 'SQL_WARNINGS',
  633. 'START',
  634. 'STARTING',
  635. 'STATUS',
  636. 'STOP',
  637. 'STORAGE',
  638. 'STRAIGHT_JOIN',
  639. 'STRING',
  640. 'STRIPED',
  641. 'SUPER',
  642. 'TABLE',
  643. 'TABLES',
  644. 'TEMPORARY',
  645. 'TERMINATED',
  646. 'THEN',
  647. 'TO',
  648. 'TRAILING',
  649. 'TRANSACTIONAL', // 5.1 ?
  650. 'TRUE',
  651. 'TRUNCATE',
  652. 'TYPE',
  653. 'TYPES',
  654. 'UNCOMMITTED',
  655. 'UNION',
  656. 'UNIQUE',
  657. 'UNLOCK',
  658. 'UPDATE',
  659. 'USAGE',
  660. 'USE',
  661. 'USING',
  662. 'VALUES',
  663. 'VARIABLES',
  664. 'VIEW',
  665. 'WHEN',
  666. 'WHERE',
  667. 'WITH',
  668. 'WORK',
  669. 'WRITE',
  670. 'XOR',
  671. 'YEAR_MONTH'
  672. );
  673. /**
  674. * words forbidden to be used as column or table name without quotes
  675. * as seen in http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html
  676. *
  677. * @global array MySQL forbidden words
  678. */
  679. $PMA_SQPdata_forbidden_word = array (
  680. 'ACCESSIBLE',
  681. 'ADD',
  682. 'ALL',
  683. 'ALTER',
  684. 'ANALYZE',
  685. 'AND',
  686. 'AS',
  687. 'ASC',
  688. 'ASENSITIVE',
  689. 'BEFORE',
  690. 'BETWEEN',
  691. 'BIGINT',
  692. 'BINARY',
  693. 'BLOB',
  694. 'BOTH',
  695. 'BY',
  696. 'CALL',
  697. 'CASCADE',
  698. 'CASE',
  699. 'CHANGE',
  700. 'CHAR',
  701. 'CHARACTER',
  702. 'CHECK',
  703. 'COLLATE',
  704. 'COLUMN',
  705. 'CONDITION',
  706. 'CONSTRAINT',
  707. 'CONTINUE',
  708. 'CONVERT',
  709. 'CREATE',
  710. 'CROSS',
  711. 'CURRENT_DATE',
  712. 'CURRENT_TIME',
  713. 'CURRENT_TIMESTAMP',
  714. 'CURRENT_USER',
  715. 'CURSOR',
  716. 'DATABASE',
  717. 'DATABASES',
  718. 'DAY_HOUR',
  719. 'DAY_MICROSECOND',
  720. 'DAY_MINUTE',
  721. 'DAY_SECOND',
  722. 'DEC',
  723. 'DECIMAL',
  724. 'DECLARE',
  725. 'DEFAULT',
  726. 'DELAYED',
  727. 'DELETE',
  728. 'DESC',
  729. 'DESCRIBE',
  730. 'DETERMINISTIC',
  731. 'DISTINCT',
  732. 'DISTINCTROW',
  733. 'DIV',
  734. 'DOUBLE',
  735. 'DROP',
  736. 'DUAL',
  737. 'EACH',
  738. 'ELSE',
  739. 'ELSEIF',
  740. 'ENCLOSED',
  741. 'ESCAPED',
  742. 'EXISTS',
  743. 'EXIT',
  744. 'EXPLAIN',
  745. 'FALSE',
  746. 'FETCH',
  747. 'FLOAT',
  748. 'FLOAT4',
  749. 'FLOAT8',
  750. 'FOR',
  751. 'FORCE',
  752. 'FOREIGN',
  753. 'FROM',
  754. 'FULLTEXT',
  755. 'GENERAL',
  756. 'GET',
  757. 'GRANT',
  758. 'GROUP',
  759. 'HAVING',
  760. 'HIGH_PRIORITY',
  761. 'HOUR_MICROSECOND',
  762. 'HOUR_MINUTE',
  763. 'HOUR_SECOND',
  764. 'IF',
  765. 'IGNORE',
  766. 'IGNORE_SERVER_IDS',
  767. 'IN',
  768. 'INDEX',
  769. 'INFILE',
  770. 'INNER',
  771. 'INOUT',
  772. 'INSENSITIVE',
  773. 'INSERT',
  774. 'INT',
  775. 'INT1',
  776. 'INT2',
  777. 'INT3',
  778. 'INT4',
  779. 'INT8',
  780. 'INTEGER',
  781. 'INTERVAL',
  782. 'INTO',
  783. 'IO_AFTER_GTIDS',
  784. 'IO_BEFORE_GTIDS',
  785. 'IS',
  786. 'ITERATE',
  787. 'JOIN',
  788. 'KEY',
  789. 'KEYS',
  790. 'KILL',
  791. 'LEADING',
  792. 'LEAVE',
  793. 'LEFT',
  794. 'LIKE',
  795. 'LIMIT',
  796. 'LINEAR',
  797. 'LINES',
  798. 'LOAD',
  799. 'LOCALTIME',
  800. 'LOCALTIMESTAMP',
  801. 'LOCK',
  802. 'LONG',
  803. 'LONGBLOB',
  804. 'LONGTEXT',
  805. 'LOOP',
  806. 'LOW_PRIORITY',
  807. 'MASTER_BIND',
  808. 'MASTER_HEARTBEAT_PERIOD',
  809. 'MASTER_SSL_VERIFY_SERVER_CERT',
  810. 'MATCH',
  811. 'MAXVALUE',
  812. 'MEDIUMBLOB',
  813. 'MEDIUMINT',
  814. 'MEDIUMTEXT',
  815. 'MIDDLEINT',
  816. 'MINUTE_MICROSECOND',
  817. 'MINUTE_SECOND',
  818. 'MOD',
  819. 'MODIFIES',
  820. 'NATURAL',
  821. 'NOT',
  822. 'NO_WRITE_TO_BINLOG',
  823. 'NULL',
  824. 'NUMERIC',
  825. 'ON',
  826. 'ONE_SHOT',
  827. 'OPTIMIZE',
  828. 'OPTION',
  829. 'OPTIONALLY',
  830. 'OR',
  831. 'ORDER',
  832. 'OUT',
  833. 'OUTER',
  834. 'OUTFILE',
  835. 'PARTITION',
  836. 'PRECISION',
  837. 'PRIMARY',
  838. 'PROCEDURE',
  839. 'PURGE',
  840. 'RANGE',
  841. 'READ',
  842. 'READS',
  843. 'READ_WRITE',
  844. 'REAL',
  845. 'REFERENCES',
  846. 'REGEXP',
  847. 'RELEASE',
  848. 'RENAME',
  849. 'REPEAT',
  850. 'REPLACE',
  851. 'REQUIRE',
  852. 'RESIGNAL',
  853. 'RESTRICT',
  854. 'RETURN',
  855. 'REVOKE',
  856. 'RIGHT',
  857. 'RLIKE',
  858. 'SCHEMA',
  859. 'SCHEMAS',
  860. 'SECOND_MICROSECOND',
  861. 'SELECT',
  862. 'SENSITIVE',
  863. 'SEPARATOR',
  864. 'SET',
  865. 'SHOW',
  866. 'SIGNAL',
  867. 'SLOW',
  868. 'SMALLINT',
  869. 'SPATIAL',
  870. 'SPECIFIC',
  871. 'SQL',
  872. 'SQLEXCEPTION',
  873. 'SQLSTATE',
  874. 'SQLWARNING',
  875. 'SQL_AFTER_GTIDS',
  876. 'SQL_BEFORE_GTIDS',
  877. 'SQL_BIG_RESULT',
  878. 'SQL_CALC_FOUND_ROWS',
  879. 'SQL_SMALL_RESULT',
  880. 'SSL',
  881. 'STARTING',
  882. 'STRAIGHT_JOIN',
  883. 'TABLE',
  884. 'TERMINATED',
  885. 'THEN',
  886. 'TINYBLOB',
  887. 'TINYINT',
  888. 'TINYTEXT',
  889. 'TO',
  890. 'TRAILING',
  891. 'TRIGGER',
  892. 'TRUE',
  893. 'UNDO',
  894. 'UNION',
  895. 'UNIQUE',
  896. 'UNLOCK',
  897. 'UNSIGNED',
  898. 'UPDATE',
  899. 'USAGE',
  900. 'USE',
  901. 'USING',
  902. 'UTC_DATE',
  903. 'UTC_TIME',
  904. 'UTC_TIMESTAMP',
  905. 'VALUES',
  906. 'VARBINARY',
  907. 'VARCHAR',
  908. 'VARCHARACTER',
  909. 'VARYING',
  910. 'WHEN',
  911. 'WHERE',
  912. 'WHILE',
  913. 'WITH',
  914. 'WRITE',
  915. 'XOR',
  916. 'YEAR_MONTH',
  917. 'ZEROFILL'
  918. );
  919. /**
  920. * the MySQL column/data types
  921. *
  922. * @see http://dev.mysql.com/doc/refman/5.1/en/data-types.html
  923. * @see http://dev.mysql.com/doc/refman/5.1/en/mysql-spatial-datatypes.html
  924. *
  925. * @global array MySQL column types
  926. */
  927. $PMA_SQPdata_column_type = array (
  928. 'BIGINT',
  929. 'BINARY',
  930. 'BIT',
  931. 'BLOB',
  932. 'BOOL',
  933. 'BOOLEAN', // numeric-type-overview.html
  934. 'CHAR',
  935. 'CHARACTER',
  936. 'DATE',
  937. 'DATETIME',
  938. 'DEC',
  939. 'DECIMAL',
  940. 'DOUBLE',
  941. 'ENUM',
  942. 'FLOAT',
  943. 'FLOAT4',
  944. 'FLOAT8',
  945. 'GEOMETRY', // spatial
  946. 'GEOMETRYCOLLECTION', // spatial
  947. 'INT',
  948. 'INT1',
  949. 'INT2',
  950. 'INT3',
  951. 'INT4',
  952. 'INT8',
  953. 'INTEGER',
  954. 'LINESTRING', // spatial
  955. 'LONG',
  956. 'LONGBLOB',
  957. 'LONGTEXT',
  958. 'MEDIUMBLOB',
  959. 'MEDIUMINT',
  960. 'MEDIUMTEXT',
  961. 'MIDDLEINT',
  962. 'MULTILINESTRING', // spatial
  963. 'MULTIPOINT', // spatial
  964. 'MULTIPOLYGON', // spatial
  965. 'NCHAR',
  966. 'NUMERIC',
  967. 'POINT', // spatial
  968. 'POLYGON', // spatial
  969. 'REAL',
  970. 'SERIAL', // alias
  971. 'SET',
  972. 'SMALLINT',
  973. 'TEXT',
  974. 'TIME',
  975. 'TIMESTAMP',
  976. 'TINYBLOB',
  977. 'TINYINT',
  978. 'TINYTEXT',
  979. 'VARBINARY',
  980. 'VARCHAR',
  981. 'YEAR'
  982. );
  983. ?>