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