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