PageRenderTime 80ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/pma/libraries/sqlparser.data.php

https://bitbucket.org/StasPiv/playzone
PHP | 1292 lines | 1175 code | 7 blank | 110 comment | 1 complexity | 716e52e10a1c9620fac6a846b8c965c4 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, GPL-2.0, LGPL-2.1
  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. * Note: before adding a value in the arrays, ensure that you respect
  15. * proper sorting, especially with underscores. And don't forget to
  16. * update the _cnt variable at the end of each array.
  17. * (It's slower to have PHP do the count).
  18. *
  19. * It's easier to use only uppercase for proper sorting. In case of
  20. * doubt, use the DEBUG code after this function's definition.
  21. *
  22. * @version $Id: sqlparser.data.php 12432 2009-05-17 22:20:16Z helmo $
  23. * @package phpMyAdmin
  24. */
  25. if (! defined('PHPMYADMIN')) {
  26. exit;
  27. }
  28. /**
  29. * @global array MySQL function names
  30. */
  31. $PMA_SQPdata_function_name = array (
  32. 'ABS',
  33. 'ACOS',
  34. 'ADDDATE',
  35. 'ADDTIME',
  36. 'AES_DECRYPT',
  37. 'AES_ENCRYPT',
  38. 'AREA', // Area() polygon-property-functions.html
  39. 'ASBINARY', // AsBinary()
  40. 'ASCII',
  41. 'ASIN',
  42. 'ASTEXT', // AsText()
  43. 'ATAN',
  44. 'ATAN2',
  45. 'AVG',
  46. 'BDMPOLYFROMTEXT', // BdMPolyFromText()
  47. 'BDMPOLYFROMWKB', // BdMPolyFromWKB()
  48. 'BDPOLYFROMTEXT', // BdPolyFromText()
  49. 'BDPOLYFROMWKB', // BdPolyFromWKB()
  50. 'BENCHMARK',
  51. 'BIN',
  52. 'BIT_AND',
  53. 'BIT_COUNT',
  54. 'BIT_LENGTH',
  55. 'BIT_OR',
  56. 'BIT_XOR', // group-by-functions.html
  57. 'BOUNDARY', // Boundary() general-geometry-property-functions.html
  58. 'BUFFER', // Buffer()
  59. 'CAST',
  60. 'CEIL',
  61. 'CEILING',
  62. 'CENTROID', // Centroid() multipolygon-property-functions.html
  63. 'CHAR', // string-functions.html
  64. 'CHARACTER_LENGTH',
  65. 'CHARSET', // information-functions.html
  66. 'CHAR_LENGTH',
  67. 'COALESCE',
  68. 'COERCIBILITY', // information-functions.html
  69. 'COLLATION', // information-functions.html
  70. 'COMPRESS', // string-functions.html
  71. 'CONCAT',
  72. 'CONCAT_WS',
  73. 'CONNECTION_ID',
  74. 'CONTAINS', // Contains()
  75. 'CONV',
  76. 'CONVERT',
  77. 'CONVERT_TZ',
  78. 'CONVEXHULL', // ConvexHull()
  79. 'COS',
  80. 'COT',
  81. 'COUNT',
  82. 'CRC32', // mathematical-functions.html
  83. 'CROSSES', // Crosses()
  84. 'CURDATE',
  85. 'CURRENT_DATE',
  86. 'CURRENT_TIME',
  87. 'CURRENT_TIMESTAMP',
  88. 'CURRENT_USER',
  89. 'CURTIME',
  90. 'DATABASE',
  91. 'DATE', // date-and-time-functions.html
  92. 'DATEDIFF', // date-and-time-functions.html
  93. 'DATE_ADD',
  94. 'DATE_DIFF',
  95. 'DATE_FORMAT',
  96. 'DATE_SUB',
  97. 'DAY',
  98. 'DAYNAME',
  99. 'DAYOFMONTH',
  100. 'DAYOFWEEK',
  101. 'DAYOFYEAR',
  102. 'DECODE',
  103. 'DEFAULT', // miscellaneous-functions.html
  104. 'DEGREES',
  105. 'DES_DECRYPT',
  106. 'DES_ENCRYPT',
  107. 'DIFFERENCE', // Difference()
  108. 'DIMENSION', // Dimension() general-geometry-property-functions.html
  109. 'DISJOINT', // Disjoint()
  110. 'DISTANCE', // Distance()
  111. 'ELT',
  112. 'ENCODE',
  113. 'ENCRYPT',
  114. 'ENDPOINT', // EndPoint() linestring-property-functions.html
  115. 'ENVELOPE', // Envelope() general-geometry-property-functions.html
  116. 'EQUALS', // Equals()
  117. 'EXP',
  118. 'EXPORT_SET',
  119. 'EXTERIORRING', // ExteriorRing() polygon-property-functions.html
  120. 'EXTRACT',
  121. 'EXTRACTVALUE', // ExtractValue() xml-functions.html
  122. 'FIELD',
  123. 'FIND_IN_SET',
  124. 'FLOOR',
  125. 'FORMAT',
  126. 'FOUND_ROWS',
  127. 'FROM_DAYS',
  128. 'FROM_UNIXTIME',
  129. 'GEOMCOLLFROMTEXT', // GeomCollFromText()
  130. 'GEOMCOLLFROMWKB', // GeomCollFromWKB()
  131. 'GEOMETRYCOLLECTION', // GeometryCollection()
  132. 'GEOMETRYCOLLECTIONFROMTEXT', // GeometryCollectionFromText()
  133. 'GEOMETRYCOLLECTIONFROMWKB', // GeometryCollectionFromWKB()
  134. 'GEOMETRYFROMTEXT', // GeometryFromText()
  135. 'GEOMETRYFROMWKB', // GeometryFromWKB()
  136. 'GEOMETRYN', // GeometryN() geometrycollection-property-functions.html
  137. 'GEOMETRYTYPE', // GeometryType() general-geometry-property-functions.html
  138. 'GEOMFROMTEXT', // GeomFromText()
  139. 'GEOMFROMWKB', // GeomFromWKB()
  140. 'GET_FORMAT',
  141. 'GET_LOCK',
  142. 'GLENGTH', // GLength() linestring-property-functions.html
  143. 'GREATEST',
  144. 'GROUP_CONCAT',
  145. 'GROUP_UNIQUE_USERS',
  146. 'HEX',
  147. 'HOUR',
  148. 'IF', //control-flow-functions.html
  149. 'IFNULL',
  150. 'INET_ATON',
  151. 'INET_NTOA',
  152. 'INSERT', // string-functions.html
  153. 'INSTR',
  154. 'INTERIORRINGN', // InteriorRingN() polygon-property-functions.html
  155. 'INTERSECTION', // Intersection()
  156. 'INTERSECTS', // Intersects()
  157. 'INTERVAL',
  158. 'ISCLOSED', // IsClosed() multilinestring-property-functions.html
  159. 'ISEMPTY', // IsEmpty() general-geometry-property-functions.html
  160. 'ISNULL',
  161. 'ISRING', // IsRing() linestring-property-functions.html
  162. 'ISSIMPLE', // IsSimple() general-geometry-property-functions.html
  163. 'IS_FREE_LOCK',
  164. 'IS_USED_LOCK', // miscellaneous-functions.html
  165. 'LAST_DAY',
  166. 'LAST_INSERT_ID',
  167. 'LCASE',
  168. 'LEAST',
  169. 'LEFT',
  170. 'LENGTH',
  171. 'LINEFROMTEXT', // LineFromText()
  172. 'LINEFROMWKB', // LineFromWKB()
  173. 'LINESTRING', // LineString()
  174. 'LINESTRINGFROMTEXT', // LineStringFromText()
  175. 'LINESTRINGFROMWKB', // LineStringFromWKB()
  176. 'LN',
  177. 'LOAD_FILE',
  178. 'LOCALTIME',
  179. 'LOCALTIMESTAMP',
  180. 'LOCATE',
  181. 'LOG',
  182. 'LOG10',
  183. 'LOG2',
  184. 'LOWER',
  185. 'LPAD',
  186. 'LTRIM',
  187. 'MAKEDATE',
  188. 'MAKETIME',
  189. 'MAKE_SET',
  190. 'MASTER_POS_WAIT',
  191. 'MAX',
  192. 'MBRCONTAINS', // MBRContains()
  193. 'MBRDISJOINT', // MBRDisjoint()
  194. 'MBREQUAL', // MBREqual()
  195. 'MBRINTERSECTS', // MBRIntersects()
  196. 'MBROVERLAPS', // MBROverlaps()
  197. 'MBRTOUCHES', // MBRTouches()
  198. 'MBRWITHIN', // MBRWithin()
  199. 'MD5',
  200. 'MICROSECOND',
  201. 'MID',
  202. 'MIN',
  203. 'MINUTE',
  204. 'MLINEFROMTEXT', // MLineFromText()
  205. 'MLINEFROMWKB', // MLineFromWKB()
  206. 'MOD',
  207. 'MONTH',
  208. 'MONTHNAME',
  209. 'NOW',
  210. 'MPOINTFROMTEXT', // MPointFromText()
  211. 'MPOINTFROMWKB', // MPointFromWKB()
  212. 'MPOLYFROMTEXT', // MPolyFromText()
  213. 'MPOLYFROMWKB', // MPolyFromWKB()
  214. 'MULTILINESTRING', // MultiLineString()
  215. 'MULTILINESTRINGFROMTEXT', // MultiLineStringFromText()
  216. 'MULTILINESTRINGFROMWKB', // MultiLineStringFromWKB()
  217. 'MULTIPOINT', // MultiPoint()
  218. 'MULTIPOINTFROMTEXT', // MultiPointFromText()
  219. 'MULTIPOINTFROMWKB', // MultiPointFromWKB()
  220. 'MULTIPOLYGON', // MultiPolygon()
  221. 'MULTIPOLYGONFROMTEXT', // MultiPolygonFromText()
  222. 'MULTIPOLYGONFROMWKB', // MultiPolygonFromWKB()
  223. 'NAME_CONST', // NAME_CONST()
  224. 'NOW', // NOW()
  225. 'NULLIF',
  226. 'NUMGEOMETRIES', // NumGeometries() geometrycollection-property-functions.html
  227. 'NUMINTERIORRINGS', // NumInteriorRings() polygon-property-functions.html
  228. 'NUMPOINTS', // NumPoints() linestring-property-functions.html
  229. 'OCT',
  230. 'OCTET_LENGTH',
  231. 'OLD_PASSWORD',
  232. 'ORD',
  233. 'OVERLAPS', // Overlaps()
  234. 'PASSWORD',
  235. 'PERIOD_ADD',
  236. 'PERIOD_DIFF',
  237. 'PI',
  238. 'POINT', // Point()
  239. 'POINTFROMTEXT', // PointFromText()
  240. 'POINTFROMWKB', // PointFromWKB()
  241. 'POINTN', // PointN() inestring-property-functions.html
  242. 'POINTONSURFACE', // PointOnSurface() multipolygon-property-functions.html
  243. 'POLYFROMTEXT', // PolyFromText()
  244. 'POLYFROMWKB', // PolyFromWKB()
  245. 'POLYGON', // Polygon()
  246. 'POLYGONFROMTEXT', // PolygonFromText()
  247. 'POLYGONFROMWKB', // PolygonFromWKB()
  248. 'POSITION',
  249. 'POW',
  250. 'POWER',
  251. 'QUARTER',
  252. 'QUOTE',
  253. 'RADIANS',
  254. 'RAND',
  255. 'RELATED', // Related()
  256. 'RELEASE_LOCK',
  257. 'REPEAT',
  258. 'REPLACE', // string-functions.html
  259. 'REVERSE',
  260. 'RIGHT',
  261. 'ROUND',
  262. 'ROW_COUNT', // information-functions.html
  263. 'RPAD',
  264. 'RTRIM',
  265. 'SCHEMA', // information-functions.html
  266. 'SECOND',
  267. 'SEC_TO_TIME',
  268. 'SESSION_USER',
  269. 'SHA',
  270. 'SHA1',
  271. 'SIGN',
  272. 'SIN',
  273. 'SLEEP', // miscellaneous-functions.html
  274. 'SOUNDEX',
  275. 'SPACE',
  276. 'SQRT',
  277. 'SRID', // general-geometry-property-functions.html
  278. 'STARTPOINT', // StartPoint() linestring-property-functions.html
  279. 'STD',
  280. 'STDDEV',
  281. 'STDDEV_POP', // group-by-functions.html
  282. 'STDDEV_SAMP', // group-by-functions.html
  283. 'STRCMP',
  284. 'STR_TO_DATE',
  285. 'SUBDATE',
  286. 'SUBSTR',
  287. 'SUBSTRING',
  288. 'SUBSTRING_INDEX',
  289. 'SUBTIME',
  290. 'SUM',
  291. 'SYMDIFFERENCE', // SymDifference()
  292. 'SYSDATE',
  293. 'SYSTEM_USER',
  294. 'TAN',
  295. 'TIME',
  296. 'TIMEDIFF',
  297. 'TIMESTAMP',
  298. 'TIMESTAMPADD',
  299. 'TIMESTAMPDIFF',
  300. 'TIME_FORMAT',
  301. 'TIME_TO_SEC',
  302. 'TOUCHES', // Touches()
  303. 'TO_DAYS',
  304. 'TRIM',
  305. 'TRUNCATE', // mathematical-functions.html
  306. 'UCASE',
  307. 'UNCOMPRESS', // string-functions.html
  308. 'UNCOMPRESSED_LENGTH', // string-functions.html
  309. 'UNHEX', // string-functions.html
  310. 'UNIQUE_USERS',
  311. 'UNIX_TIMESTAMP',
  312. 'UPDATEXML', // UpdateXML() xml-functions.html
  313. 'UPPER',
  314. 'USER',
  315. 'UTC_DATE',
  316. 'UTC_TIME',
  317. 'UTC_TIMESTAMP',
  318. 'UUID', // miscellaneous-functions.html
  319. 'VARIANCE', // group-by-functions.html
  320. 'VAR_POP', // group-by-functions.html
  321. 'VAR_SAMP', // group-by-functions.html
  322. 'VERSION',
  323. 'WEEK',
  324. 'WEEKDAY',
  325. 'WEEKOFYEAR',
  326. 'WITHIN', // Within()
  327. 'X', // point-property-functions.html
  328. 'Y', // point-property-functions.html
  329. 'YEAR',
  330. 'YEARWEEK'
  331. );
  332. /**
  333. * $PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
  334. *
  335. * @global integer MySQL attributes count
  336. */
  337. $PMA_SQPdata_function_name_cnt = 299;
  338. /*
  339. * DEBUG
  340. $test_PMA_SQPdata_function_name = $PMA_SQPdata_function_name;
  341. sort($PMA_SQPdata_function_name);
  342. if ($PMA_SQPdata_function_name != $test_PMA_SQPdata_function_name) {
  343. echo 'sort properly like this<pre>';
  344. print_r($PMA_SQPdata_function_name);
  345. echo '</pre>';
  346. }
  347. */
  348. /**
  349. * @global array MySQL attributes
  350. */
  351. $PMA_SQPdata_column_attrib = array (
  352. 'ARCHIVE', // Engine
  353. 'ASCII',
  354. 'AUTO_INCREMENT',
  355. 'BDB', // Engine
  356. 'BERKELEYDB', // Engine alias BDB
  357. 'BINARY',
  358. 'BLACKHOLE', // Engine
  359. 'CSV', // Engine
  360. 'DEFAULT',
  361. 'EXAMPLE', // Engine
  362. 'FEDERATED', // Engine
  363. 'HEAP', // Engine
  364. 'INNOBASE', // Engine alias InnoDB
  365. 'INNODB', // Engine InnoDB
  366. 'ISAM', // Engine
  367. 'MARIA', // Engine
  368. 'MEMORY', // Engine alias HEAP, but preferred
  369. 'MERGE', // Engine
  370. 'MRG_ISAM', // Engine
  371. 'MRG_MYISAM', // Engine alias MERGE
  372. 'MYISAM', // Engine MyISAM
  373. 'NATIONAL',
  374. 'NDB', // Engine alias NDBCLUSTER
  375. 'NDBCLUSTER', // Engine
  376. 'PRECISION',
  377. 'UNDEFINED',
  378. 'UNICODE',
  379. 'UNSIGNED',
  380. 'VARYING',
  381. 'ZEROFILL'
  382. );
  383. /**
  384. * $PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
  385. *
  386. * @global integer MySQL attributes count
  387. */
  388. $PMA_SQPdata_column_attrib_cnt = 30;
  389. /**
  390. * words that are reserved by MySQL and may not be used as identifiers without quotes
  391. *
  392. * @see http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
  393. *
  394. * @global array MySQL reserved words
  395. */
  396. $PMA_SQPdata_reserved_word = array (
  397. 'ACCESSIBLE', // 5.1
  398. 'ACTION',
  399. 'ADD',
  400. 'AFTER',
  401. 'AGAINST',
  402. 'AGGREGATE',
  403. 'ALGORITHM',
  404. 'ALL',
  405. 'ALTER',
  406. 'ANALYSE',
  407. 'ANALYZE',
  408. 'AND',
  409. 'AS',
  410. 'ASC',
  411. 'AUTOCOMMIT',
  412. 'AUTO_INCREMENT',
  413. 'AVG_ROW_LENGTH',
  414. 'BACKUP',
  415. 'BEGIN',
  416. 'BETWEEN',
  417. 'BINLOG',
  418. 'BOTH',
  419. 'BY',
  420. 'CASCADE',
  421. 'CASE',
  422. 'CHANGE',
  423. 'CHANGED',
  424. 'CHARSET',
  425. 'CHECK',
  426. 'CHECKSUM',
  427. 'COLLATE',
  428. 'COLLATION',
  429. 'COLUMN',
  430. 'COLUMNS',
  431. 'COMMENT',
  432. 'COMMIT',
  433. 'COMMITTED',
  434. 'COMPRESSED',
  435. 'CONCURRENT',
  436. 'CONSTRAINT',
  437. 'CONTAINS',
  438. 'CONVERT',
  439. 'CREATE',
  440. 'CROSS',
  441. 'CURRENT_TIMESTAMP',
  442. 'DATA',
  443. 'DATABASE',
  444. 'DATABASES',
  445. 'DAY',
  446. 'DAY_HOUR',
  447. 'DAY_MINUTE',
  448. 'DAY_SECOND',
  449. 'DEFINER',
  450. 'DELAYED',
  451. 'DELAY_KEY_WRITE',
  452. 'DELETE',
  453. 'DESC',
  454. 'DESCRIBE',
  455. 'DETERMINISTIC',
  456. 'DISTINCT',
  457. 'DISTINCTROW',
  458. 'DIV',
  459. 'DO',
  460. 'DROP',
  461. 'DUMPFILE',
  462. 'DUPLICATE',
  463. 'DYNAMIC',
  464. 'ELSE',
  465. 'ENCLOSED',
  466. 'END',
  467. 'ENGINE',
  468. 'ENGINES',
  469. 'ESCAPE',
  470. 'ESCAPED',
  471. 'EVENTS',
  472. 'EXECUTE',
  473. 'EXISTS',
  474. 'EXPLAIN',
  475. 'EXTENDED',
  476. 'FAST',
  477. 'FIELDS',
  478. 'FILE',
  479. 'FIRST',
  480. 'FIXED',
  481. 'FLUSH',
  482. 'FOR',
  483. 'FORCE',
  484. 'FOREIGN',
  485. 'FROM',
  486. 'FULL',
  487. 'FULLTEXT',
  488. 'FUNCTION',
  489. 'GEMINI',
  490. 'GEMINI_SPIN_RETRIES',
  491. 'GLOBAL',
  492. 'GRANT',
  493. 'GRANTS',
  494. 'GROUP',
  495. 'HAVING',
  496. 'HEAP',
  497. 'HIGH_PRIORITY',
  498. 'HOSTS',
  499. 'HOUR',
  500. 'HOUR_MINUTE',
  501. 'HOUR_SECOND',
  502. 'IDENTIFIED',
  503. 'IF',
  504. 'IGNORE',
  505. 'IN',
  506. 'INDEX',
  507. 'INDEXES',
  508. 'INFILE',
  509. 'INNER',
  510. 'INSERT',
  511. 'INSERT_ID',
  512. 'INSERT_METHOD',
  513. 'INTERVAL',
  514. 'INTO',
  515. 'INVOKER',
  516. 'IS',
  517. 'ISOLATION',
  518. 'JOIN',
  519. 'KEY',
  520. 'KEYS',
  521. 'KILL',
  522. 'LAST_INSERT_ID',
  523. 'LEADING',
  524. 'LEFT',
  525. 'LEVEL',
  526. 'LIKE',
  527. 'LIMIT',
  528. 'LINEAR', // 5.1
  529. 'LINES',
  530. 'LOAD',
  531. 'LOCAL',
  532. 'LOCK',
  533. 'LOCKS',
  534. 'LOGS',
  535. 'LOW_PRIORITY',
  536. 'MARIA', // 5.1 ?
  537. 'MASTER',
  538. 'MASTER_CONNECT_RETRY',
  539. 'MASTER_HOST',
  540. 'MASTER_LOG_FILE',
  541. 'MASTER_LOG_POS',
  542. 'MASTER_PASSWORD',
  543. 'MASTER_PORT',
  544. 'MASTER_USER',
  545. 'MATCH',
  546. 'MAX_CONNECTIONS_PER_HOUR',
  547. 'MAX_QUERIES_PER_HOUR',
  548. 'MAX_ROWS',
  549. 'MAX_UPDATES_PER_HOUR',
  550. 'MAX_USER_CONNECTIONS',
  551. 'MEDIUM',
  552. 'MERGE',
  553. 'MINUTE',
  554. 'MINUTE_SECOND',
  555. 'MIN_ROWS',
  556. 'MODE',
  557. 'MODIFY',
  558. 'MONTH',
  559. 'MRG_MYISAM',
  560. 'MYISAM',
  561. 'NAMES',
  562. 'NATURAL',
  563. // 'NO' is not allowed in SQL-99 but is allowed in MySQL
  564. //'NO',
  565. 'NOT',
  566. 'NULL',
  567. 'OFFSET',
  568. 'ON',
  569. 'OPEN',
  570. 'OPTIMIZE',
  571. 'OPTION',
  572. 'OPTIONALLY',
  573. 'OR',
  574. 'ORDER',
  575. 'OUTER',
  576. 'OUTFILE',
  577. 'PACK_KEYS',
  578. 'PAGE', // 5.1-maria ?
  579. 'PARTIAL',
  580. 'PARTITION', // 5.1
  581. 'PARTITIONS', // 5.1
  582. 'PASSWORD',
  583. 'PRIMARY',
  584. 'PRIVILEGES',
  585. 'PROCEDURE',
  586. 'PROCESS',
  587. 'PROCESSLIST',
  588. 'PURGE',
  589. 'QUICK',
  590. 'RAID0',
  591. 'RAID_CHUNKS',
  592. 'RAID_CHUNKSIZE',
  593. 'RAID_TYPE',
  594. 'RANGE', // 5.1
  595. 'READ',
  596. 'READ_ONLY', // 5.1
  597. 'READ_WRITE', // 5.1
  598. 'REFERENCES',
  599. 'REGEXP',
  600. 'RELOAD',
  601. 'RENAME',
  602. 'REPAIR',
  603. 'REPEATABLE',
  604. 'REPLACE',
  605. 'REPLICATION',
  606. 'RESET',
  607. 'RESTORE',
  608. 'RESTRICT',
  609. 'RETURN',
  610. 'RETURNS',
  611. 'REVOKE',
  612. 'RIGHT',
  613. 'RLIKE',
  614. 'ROLLBACK',
  615. 'ROW',
  616. 'ROWS',
  617. 'ROW_FORMAT',
  618. 'SECOND',
  619. 'SECURITY',
  620. 'SELECT',
  621. 'SEPARATOR',
  622. 'SERIALIZABLE',
  623. 'SESSION',
  624. 'SHARE',
  625. 'SHOW',
  626. 'SHUTDOWN',
  627. 'SLAVE',
  628. 'SONAME',
  629. 'SOUNDS', // string-functions.html
  630. 'SQL',
  631. 'SQL_AUTO_IS_NULL',
  632. 'SQL_BIG_RESULT',
  633. 'SQL_BIG_SELECTS',
  634. 'SQL_BIG_TABLES',
  635. 'SQL_BUFFER_RESULT',
  636. 'SQL_CACHE',
  637. 'SQL_CALC_FOUND_ROWS',
  638. 'SQL_LOG_BIN',
  639. 'SQL_LOG_OFF',
  640. 'SQL_LOG_UPDATE',
  641. 'SQL_LOW_PRIORITY_UPDATES',
  642. 'SQL_MAX_JOIN_SIZE',
  643. 'SQL_NO_CACHE',
  644. 'SQL_QUOTE_SHOW_CREATE',
  645. 'SQL_SAFE_UPDATES',
  646. 'SQL_SELECT_LIMIT',
  647. 'SQL_SLAVE_SKIP_COUNTER',
  648. 'SQL_SMALL_RESULT',
  649. 'SQL_WARNINGS',
  650. 'START',
  651. 'STARTING',
  652. 'STATUS',
  653. 'STOP',
  654. 'STORAGE',
  655. 'STRAIGHT_JOIN',
  656. 'STRING',
  657. 'STRIPED',
  658. 'SUPER',
  659. 'TABLE',
  660. 'TABLES',
  661. 'TEMPORARY',
  662. 'TERMINATED',
  663. 'THEN',
  664. 'TO',
  665. 'TRAILING',
  666. 'TRANSACTIONAL', // 5.1 ?
  667. 'TRUNCATE',
  668. 'TYPE',
  669. 'TYPES',
  670. 'UNCOMMITTED',
  671. 'UNION',
  672. 'UNIQUE',
  673. 'UNLOCK',
  674. 'UPDATE',
  675. 'USAGE',
  676. 'USE',
  677. 'USING',
  678. 'VALUES',
  679. 'VARIABLES',
  680. 'VIEW',
  681. 'WHEN',
  682. 'WHERE',
  683. 'WITH',
  684. 'WORK',
  685. 'WRITE',
  686. 'XOR',
  687. 'YEAR_MONTH'
  688. );
  689. /**
  690. * $PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
  691. *
  692. * @global integer MySQL reserved words count
  693. */
  694. $PMA_SQPdata_reserved_word_cnt = 289;
  695. /**
  696. * The previous array must be sorted so that the binary search work.
  697. * Sometimes a word is not added in the correct order, so
  698. * this debugging code shows the problem. The same should be
  699. * done for all arrays.
  700. */
  701. /*
  702. $original = $PMA_SQPdata_reserved_word;
  703. sort($PMA_SQPdata_reserved_word);
  704. $difference = array_diff_assoc($original, $PMA_SQPdata_reserved_word);
  705. echo '<pre>';
  706. print_r($difference);
  707. echo '</pre>';
  708. echo '<pre>';
  709. print_r($PMA_SQPdata_reserved_word);
  710. echo '</pre>';
  711. */
  712. /**
  713. * words forbidden to be used as column or table name wihtout quotes
  714. * as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
  715. *
  716. * @global array MySQL forbidden words
  717. */
  718. $PMA_SQPdata_forbidden_word = array (
  719. 'ACCESSIBLE', // 5.1
  720. 'ACTION',
  721. 'ADD',
  722. 'AFTER',
  723. 'AGAINST',
  724. 'AGGREGATE',
  725. 'ALGORITHM',
  726. 'ALL',
  727. 'ALTER',
  728. 'ANALYZE',
  729. 'AND',
  730. 'ANY',
  731. 'AS',
  732. 'ASC',
  733. 'ASCII',
  734. 'ASENSITIVE',
  735. 'AUTO_INCREMENT',
  736. 'AVG',
  737. 'AVG_ROW_LENGTH',
  738. 'BACKUP',
  739. 'BDB',
  740. 'BEFORE',
  741. 'BEGIN',
  742. 'BERKELEYDB',
  743. 'BETWEEN',
  744. 'BIGINT',
  745. 'BINARY',
  746. 'BINLOG',
  747. 'BIT',
  748. 'BLOB',
  749. 'BOOL',
  750. 'BOOLEAN',
  751. 'BOTH',
  752. 'BTREE',
  753. 'BY',
  754. 'BYTE',
  755. 'CACHE',
  756. 'CALL',
  757. 'CASCADE',
  758. 'CASCADED',
  759. 'CASE',
  760. 'CHAIN',
  761. 'CHANGE',
  762. 'CHANGED',
  763. 'CHAR',
  764. 'CHARACTER',
  765. 'CHARSET',
  766. 'CHECK',
  767. 'CHECKSUM',
  768. 'CIPHER',
  769. 'CLOSE',
  770. 'COLLATE',
  771. 'COLLATION',
  772. 'COLUMN',
  773. 'COLUMNS',
  774. 'COMMENT',
  775. 'COMMIT',
  776. 'COMMITTED',
  777. 'COMPACT',
  778. 'COMPRESSED',
  779. 'CONCURRENT',
  780. 'CONDITION',
  781. 'CONNECTION',
  782. 'CONSISTENT',
  783. 'CONSTRAINT',
  784. 'CONTAINS',
  785. 'CONTINUE',
  786. 'CONVERT',
  787. 'CREATE',
  788. 'CROSS',
  789. 'CUBE',
  790. 'CURRENT_DATE',
  791. 'CURRENT_TIME',
  792. 'CURRENT_TIMESTAMP',
  793. 'CURRENT_USER',
  794. 'CURSOR',
  795. 'DATA',
  796. 'DATABASE',
  797. 'DATABASES',
  798. 'DATE',
  799. 'DATETIME',
  800. 'DAY',
  801. 'DAY_HOUR',
  802. 'DAY_MICROSECOND',
  803. 'DAY_MINUTE',
  804. 'DAY_SECOND',
  805. 'DEALLOCATE',
  806. 'DEC',
  807. 'DECIMAL',
  808. 'DECLARE',
  809. 'DEFAULT',
  810. 'DEFINER',
  811. 'DELAYED',
  812. 'DELAY_KEY_WRITE',
  813. 'DELETE',
  814. 'DESC',
  815. 'DESCRIBE',
  816. 'DES_KEY_FILE',
  817. 'DETERMINISTIC',
  818. 'DIRECTORY',
  819. 'DISABLE',
  820. 'DISCARD',
  821. 'DISTINCT',
  822. 'DISTINCTROW',
  823. 'DIV',
  824. 'DO',
  825. 'DOUBLE',
  826. 'DROP',
  827. 'DUAL',
  828. 'DUMPFILE',
  829. 'DUPLICATE',
  830. 'DYNAMIC',
  831. 'EACH',
  832. 'ELSE',
  833. 'ELSEIF',
  834. 'ENABLE',
  835. 'ENCLOSED',
  836. 'END',
  837. 'ENGINE',
  838. 'ENGINES',
  839. 'ENUM',
  840. 'ERRORS',
  841. 'ESCAPE',
  842. 'ESCAPED',
  843. 'EVENTS',
  844. 'EXECUTE',
  845. 'EXISTS',
  846. 'EXIT',
  847. 'EXPANSION',
  848. 'EXPLAIN',
  849. 'EXTENDED',
  850. 'FALSE',
  851. 'FAST',
  852. 'FETCH',
  853. 'FIELDS',
  854. 'FILE',
  855. 'FIRST',
  856. 'FIXED',
  857. 'FLOAT',
  858. 'FLOAT4',
  859. 'FLOAT8',
  860. 'FLUSH',
  861. 'FOR',
  862. 'FORCE',
  863. 'FOREIGN',
  864. 'FOUND',
  865. 'FRAC_SECOND',
  866. 'FROM',
  867. 'FULL',
  868. 'FULLTEXT',
  869. 'FUNCTION',
  870. 'GEOMETRY',
  871. 'GEOMETRYCOLLECTION',
  872. 'GET_FORMAT',
  873. 'GLOBAL',
  874. 'GOTO',
  875. 'GRANT',
  876. 'GRANTS',
  877. 'GROUP',
  878. 'HANDLER',
  879. 'HASH',
  880. 'HAVING',
  881. 'HELP',
  882. 'HIGH_PRIORITY',
  883. 'HOSTS',
  884. 'HOUR',
  885. 'HOUR_MICROSECOND',
  886. 'HOUR_MINUTE',
  887. 'HOUR_SECOND',
  888. 'IDENTIFIED',
  889. 'IF',
  890. 'IGNORE',
  891. 'IMPORT',
  892. 'IN',
  893. 'INDEX',
  894. 'INDEXES',
  895. 'INFILE',
  896. 'INNER',
  897. 'INNOBASE',
  898. 'INNODB',
  899. 'INOUT',
  900. 'INSENSITIVE',
  901. 'INSERT',
  902. 'INSERT_METHOD',
  903. 'INT',
  904. 'INT1',
  905. 'INT2',
  906. 'INT3',
  907. 'INT4',
  908. 'INT8',
  909. 'INTEGER',
  910. 'INTERVAL',
  911. 'INTO',
  912. 'INVOKER',
  913. 'IO_THREAD',
  914. 'IS',
  915. 'ISOLATION',
  916. 'ISSUER',
  917. 'ITERATE',
  918. 'JOIN',
  919. 'KEY',
  920. 'KEYS',
  921. 'KILL',
  922. 'LABEL',
  923. 'LANGUAGE',
  924. 'LAST',
  925. 'LEADING',
  926. 'LEAVE',
  927. 'LEAVES',
  928. 'LEFT',
  929. 'LEVEL',
  930. 'LIKE',
  931. 'LIMIT',
  932. 'LINEAR', // 5.1
  933. 'LINES',
  934. 'LINESTRING',
  935. 'LOAD',
  936. 'LOCAL',
  937. 'LOCALTIME',
  938. 'LOCALTIMESTAMP',
  939. 'LOCK',
  940. 'LOCKS',
  941. 'LOGS',
  942. 'LONG',
  943. 'LONGBLOB',
  944. 'LONGTEXT',
  945. 'LOOP',
  946. 'LOW_PRIORITY',
  947. 'MASTER',
  948. 'MASTER_CONNECT_RETRY',
  949. 'MASTER_HOST',
  950. 'MASTER_LOG_FILE',
  951. 'MASTER_LOG_POS',
  952. 'MASTER_PASSWORD',
  953. 'MASTER_PORT',
  954. 'MASTER_SERVER_ID',
  955. 'MASTER_SSL',
  956. 'MASTER_SSL_CA',
  957. 'MASTER_SSL_CAPATH',
  958. 'MASTER_SSL_CERT',
  959. 'MASTER_SSL_CIPHER',
  960. 'MASTER_SSL_KEY',
  961. 'MASTER_USER',
  962. 'MATCH',
  963. 'MAX_CONNECTIONS_PER_HOUR',
  964. 'MAX_QUERIES_PER_HOUR',
  965. 'MAX_ROWS',
  966. 'MAX_UPDATES_PER_HOUR',
  967. 'MAX_USER_CONNECTIONS',
  968. 'MEDIUM',
  969. 'MEDIUMBLOB',
  970. 'MEDIUMINT',
  971. 'MEDIUMTEXT',
  972. 'MERGE',
  973. 'MICROSECOND',
  974. 'MIDDLEINT',
  975. 'MIGRATE',
  976. 'MINUTE',
  977. 'MINUTE_MICROSECOND',
  978. 'MINUTE_SECOND',
  979. 'MIN_ROWS',
  980. 'MOD',
  981. 'MODE',
  982. 'MODIFIES',
  983. 'MODIFY',
  984. 'MONTH',
  985. 'MULTILINESTRING',
  986. 'MULTIPOINT',
  987. 'MULTIPOLYGON',
  988. 'MUTEX',
  989. 'NAME',
  990. 'NAMES',
  991. 'NATIONAL',
  992. 'NATURAL',
  993. 'NCHAR',
  994. 'NDB',
  995. 'NDBCLUSTER',
  996. 'NEW',
  997. 'NEXT',
  998. 'NO',
  999. 'NONE',
  1000. 'NOT',
  1001. 'NO_WRITE_TO_BINLOG',
  1002. 'NULL',
  1003. 'NUMERIC',
  1004. 'NVARCHAR',
  1005. 'OFFSET',
  1006. 'OLD_PASSWORD',
  1007. 'ON',
  1008. 'ONE',
  1009. 'ONE_SHOT',
  1010. 'OPEN',
  1011. 'OPTIMIZE',
  1012. 'OPTION',
  1013. 'OPTIONALLY',
  1014. 'OR',
  1015. 'ORDER',
  1016. 'OUT',
  1017. 'OUTER',
  1018. 'OUTFILE',
  1019. 'PACK_KEYS',
  1020. 'PARTIAL',
  1021. 'PASSWORD',
  1022. 'PHASE',
  1023. 'POINT',
  1024. 'POLYGON',
  1025. 'PRECISION',
  1026. 'PREPARE',
  1027. 'PREV',
  1028. 'PRIMARY',
  1029. 'PRIVILEGES',
  1030. 'PROCEDURE',
  1031. 'PROCESSLIST',
  1032. 'PURGE',
  1033. 'QUARTER',
  1034. 'QUERY',
  1035. 'QUICK',
  1036. 'RAID0',
  1037. 'RAID_CHUNKS',
  1038. 'RAID_CHUNKSIZE',
  1039. 'RAID_TYPE',
  1040. 'RANGE', // 5.1
  1041. 'READ',
  1042. 'READ_ONLY', // 5.1
  1043. 'READ_WRITE', // 5.1
  1044. 'READS',
  1045. 'REAL',
  1046. 'RECOVER',
  1047. 'REDUNDANT',
  1048. 'REFERENCES',
  1049. 'REGEXP',
  1050. 'RELAY_LOG_FILE',
  1051. 'RELAY_LOG_POS',
  1052. 'RELAY_THREAD',
  1053. 'RELEASE',
  1054. 'RELOAD',
  1055. 'RENAME',
  1056. 'REPAIR',
  1057. 'REPEAT',
  1058. 'REPEATABLE',
  1059. 'REPLACE',
  1060. 'REPLICATION',
  1061. 'REQUIRE',
  1062. 'RESET',
  1063. 'RESTORE',
  1064. 'RESTRICT',
  1065. 'RESUME',
  1066. 'RETURN',
  1067. 'RETURNS',
  1068. 'REVOKE',
  1069. 'RIGHT',
  1070. 'RLIKE',
  1071. 'ROLLBACK',
  1072. 'ROLLUP',
  1073. 'ROUTINE',
  1074. 'ROW',
  1075. 'ROWS',
  1076. 'ROW_FORMAT',
  1077. 'RTREE',
  1078. 'SAVEPOINT',
  1079. 'SCHEMA',
  1080. 'SCHEMAS',
  1081. 'SECOND',
  1082. 'SECOND_MICROSECOND',
  1083. 'SECURITY',
  1084. 'SELECT',
  1085. 'SENSITIVE',
  1086. 'SEPARATOR',
  1087. 'SERIAL',
  1088. 'SERIALIZABLE',
  1089. 'SESSION',
  1090. 'SET',
  1091. 'SHARE',
  1092. 'SHOW',
  1093. 'SHUTDOWN',
  1094. 'SIGNED',
  1095. 'SIMPLE',
  1096. 'SLAVE',
  1097. 'SMALLINT',
  1098. 'SNAPSHOT',
  1099. 'SOME',
  1100. 'SONAME',
  1101. 'SOUNDS',
  1102. 'SPATIAL',
  1103. 'SPECIFIC',
  1104. 'SQL',
  1105. 'SQLEXCEPTION',
  1106. 'SQLSTATE',
  1107. 'SQLWARNING',
  1108. 'SQL_BIG_RESULT',
  1109. 'SQL_BUFFER_RESULT',
  1110. 'SQL_CACHE',
  1111. 'SQL_CALC_FOUND_ROWS',
  1112. 'SQL_NO_CACHE',
  1113. 'SQL_SMALL_RESULT',
  1114. 'SQL_THREAD',
  1115. 'SQL_TSI_DAY',
  1116. 'SQL_TSI_FRAC_SECOND',
  1117. 'SQL_TSI_HOUR',
  1118. 'SQL_TSI_MINUTE',
  1119. 'SQL_TSI_MONTH',
  1120. 'SQL_TSI_QUARTER',
  1121. 'SQL_TSI_SECOND',
  1122. 'SQL_TSI_WEEK',
  1123. 'SQL_TSI_YEAR',
  1124. 'SSL',
  1125. 'START',
  1126. 'STARTING',
  1127. 'STATUS',
  1128. 'STOP',
  1129. 'STORAGE',
  1130. 'STRAIGHT_JOIN',
  1131. 'STRING',
  1132. 'STRIPED',
  1133. 'SUBJECT',
  1134. 'SUPER',
  1135. 'SUSPEND',
  1136. 'TABLE',
  1137. 'TABLES',
  1138. 'TABLESPACE',
  1139. 'TEMPORARY',
  1140. 'TEMPTABLE',
  1141. 'TERMINATED',
  1142. 'TEXT',
  1143. 'THEN',
  1144. 'TIME',
  1145. 'TIMESTAMP',
  1146. 'TIMESTAMPADD',
  1147. 'TIMESTAMPDIFF',
  1148. 'TINYBLOB',
  1149. 'TINYINT',
  1150. 'TINYTEXT',
  1151. 'TO',
  1152. 'TRAILING',
  1153. 'TRANSACTION',
  1154. 'TRIGGER',
  1155. 'TRIGGERS',
  1156. 'TRUE',
  1157. 'TRUNCATE',
  1158. 'TYPE',
  1159. 'TYPES',
  1160. 'UNCOMMITTED',
  1161. 'UNDEFINED',
  1162. 'UNDO',
  1163. 'UNICODE',
  1164. 'UNION',
  1165. 'UNIQUE',
  1166. 'UNKNOWN',
  1167. 'UNLOCK',
  1168. 'UNSIGNED',
  1169. 'UNTIL',
  1170. 'UPDATE',
  1171. 'USAGE',
  1172. 'USE',
  1173. 'USER',
  1174. 'USER_RESOURCES',
  1175. 'USE_FRM',
  1176. 'USING',
  1177. 'UTC_DATE',
  1178. 'UTC_TIME',
  1179. 'UTC_TIMESTAMP',
  1180. 'VALUE',
  1181. 'VALUES',
  1182. 'VARBINARY',
  1183. 'VARCHAR',
  1184. 'VARCHARACTER',
  1185. 'VARIABLES',
  1186. 'VARYING',
  1187. 'VIEW',
  1188. 'WARNINGS',
  1189. 'WEEK',
  1190. 'WHEN',
  1191. 'WHERE',
  1192. 'WHILE',
  1193. 'WITH',
  1194. 'WORK',
  1195. 'WRITE',
  1196. 'X509',
  1197. 'XA',
  1198. 'XOR',
  1199. 'YEAR',
  1200. 'YEAR_MONTH',
  1201. 'ZEROFILL'
  1202. );
  1203. /**
  1204. * count($PMA_SQPdata_forbidden_word);
  1205. *
  1206. * @global integer MySQL forbidden words count
  1207. */
  1208. $PMA_SQPdata_forbidden_word_cnt = 483;
  1209. /**
  1210. * the MySQL column/data types
  1211. *
  1212. * @see http://dev.mysql.com/doc/refman/5.1/en/data-types.html
  1213. * @see http://dev.mysql.com/doc/refman/5.1/en/mysql-spatial-datatypes.html
  1214. *
  1215. * @global array MySQL column types
  1216. */
  1217. $PMA_SQPdata_column_type = array (
  1218. 'BIGINT',
  1219. 'BINARY',
  1220. 'BIT',
  1221. 'BLOB',
  1222. 'BOOL',
  1223. 'BOOLEAN', // numeric-type-overview.html
  1224. 'CHAR',
  1225. 'CHARACTER',
  1226. 'DATE',
  1227. 'DATETIME',
  1228. 'DEC',
  1229. 'DECIMAL',
  1230. 'DOUBLE',
  1231. 'ENUM',
  1232. 'FLOAT',
  1233. 'FLOAT4',
  1234. 'FLOAT8',
  1235. 'GEOMETRY', // spatial
  1236. 'GEOMETRYCOLLECTION', // spatial
  1237. 'INT',
  1238. 'INT1',
  1239. 'INT2',
  1240. 'INT3',
  1241. 'INT4',
  1242. 'INT8',
  1243. 'INTEGER',
  1244. 'LINESTRING', // spatial
  1245. 'LONG',
  1246. 'LONGBLOB',
  1247. 'LONGTEXT',
  1248. 'MEDIUMBLOB',
  1249. 'MEDIUMINT',
  1250. 'MEDIUMTEXT',
  1251. 'MIDDLEINT',
  1252. 'MULTILINESTRING', // spatial
  1253. 'MULTIPOINT', // spatial
  1254. 'MULTIPOLYGON', // spatial
  1255. 'NCHAR',
  1256. 'NUMERIC',
  1257. 'POINT', // spatial
  1258. 'POLYGON', // spatial
  1259. 'REAL',
  1260. 'SERIAL', // alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
  1261. 'SET',
  1262. 'SMALLINT',
  1263. 'TEXT',
  1264. 'TIME',
  1265. 'TIMESTAMP',
  1266. 'TINYBLOB',
  1267. 'TINYINT',
  1268. 'TINYTEXT',
  1269. 'VARBINARY',
  1270. 'VARCHAR',
  1271. 'YEAR'
  1272. );
  1273. /**
  1274. * $PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
  1275. *
  1276. * @global integer MySQL column types count
  1277. */
  1278. $PMA_SQPdata_column_type_cnt = 54;
  1279. /*
  1280. * check counts
  1281. foreach ($GLOBALS as $n => $a) {
  1282. echo is_array($a) ? $n . ': ' . count($a) . '<br />' : '';
  1283. }
  1284. */
  1285. ?>