3.3.9
[phpmyadmin/sankalp_k.git] / libraries / sqlparser.data.php
blobb11f95612e6305db98601ed8eaec842419641775
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 if (! isset($GLOBALS['sql_delimiter'])) {
30 $GLOBALS['sql_delimiter'] = ';';
33 /**
34 * @global array MySQL function names
36 $PMA_SQPdata_function_name = array (
37 'ABS',
38 'ACOS',
39 'ADDDATE',
40 'ADDTIME',
41 'AES_DECRYPT',
42 'AES_ENCRYPT',
43 'AREA', // Area() polygon-property-functions.html
44 'ASBINARY', // AsBinary()
45 'ASCII',
46 'ASIN',
47 'ASTEXT', // AsText()
48 'ATAN',
49 'ATAN2',
50 'AVG',
51 'BDMPOLYFROMTEXT', // BdMPolyFromText()
52 'BDMPOLYFROMWKB', // BdMPolyFromWKB()
53 'BDPOLYFROMTEXT', // BdPolyFromText()
54 'BDPOLYFROMWKB', // BdPolyFromWKB()
55 'BENCHMARK',
56 'BIN',
57 'BIT_AND',
58 'BIT_COUNT',
59 'BIT_LENGTH',
60 'BIT_OR',
61 'BIT_XOR', // group-by-functions.html
62 'BOUNDARY', // Boundary() general-geometry-property-functions.html
63 'BUFFER', // Buffer()
64 'CAST',
65 'CEIL',
66 'CEILING',
67 'CENTROID', // Centroid() multipolygon-property-functions.html
68 'CHAR', // string-functions.html
69 'CHARACTER_LENGTH',
70 'CHARSET', // information-functions.html
71 'CHAR_LENGTH',
72 'COALESCE',
73 'COERCIBILITY', // information-functions.html
74 'COLLATION', // information-functions.html
75 'COMPRESS', // string-functions.html
76 'CONCAT',
77 'CONCAT_WS',
78 'CONNECTION_ID',
79 'CONTAINS', // Contains()
80 'CONV',
81 'CONVERT',
82 'CONVERT_TZ',
83 'CONVEXHULL', // ConvexHull()
84 'COS',
85 'COT',
86 'COUNT',
87 'CRC32', // mathematical-functions.html
88 'CROSSES', // Crosses()
89 'CURDATE',
90 'CURRENT_DATE',
91 'CURRENT_TIME',
92 'CURRENT_TIMESTAMP',
93 'CURRENT_USER',
94 'CURTIME',
95 'DATABASE',
96 'DATE', // date-and-time-functions.html
97 'DATEDIFF', // date-and-time-functions.html
98 'DATE_ADD',
99 'DATE_DIFF',
100 'DATE_FORMAT',
101 'DATE_SUB',
102 'DAY',
103 'DAYNAME',
104 'DAYOFMONTH',
105 'DAYOFWEEK',
106 'DAYOFYEAR',
107 'DECODE',
108 'DEFAULT', // miscellaneous-functions.html
109 'DEGREES',
110 'DES_DECRYPT',
111 'DES_ENCRYPT',
112 'DIFFERENCE', // Difference()
113 'DIMENSION', // Dimension() general-geometry-property-functions.html
114 'DISJOINT', // Disjoint()
115 'DISTANCE', // Distance()
116 'ELT',
117 'ENCODE',
118 'ENCRYPT',
119 'ENDPOINT', // EndPoint() linestring-property-functions.html
120 'ENVELOPE', // Envelope() general-geometry-property-functions.html
121 'EQUALS', // Equals()
122 'EXP',
123 'EXPORT_SET',
124 'EXTERIORRING', // ExteriorRing() polygon-property-functions.html
125 'EXTRACT',
126 'EXTRACTVALUE', // ExtractValue() xml-functions.html
127 'FIELD',
128 'FIND_IN_SET',
129 'FLOOR',
130 'FORMAT',
131 'FOUND_ROWS',
132 'FROM_DAYS',
133 'FROM_UNIXTIME',
134 'GEOMCOLLFROMTEXT', // GeomCollFromText()
135 'GEOMCOLLFROMWKB', // GeomCollFromWKB()
136 'GEOMETRYCOLLECTION', // GeometryCollection()
137 'GEOMETRYCOLLECTIONFROMTEXT', // GeometryCollectionFromText()
138 'GEOMETRYCOLLECTIONFROMWKB', // GeometryCollectionFromWKB()
139 'GEOMETRYFROMTEXT', // GeometryFromText()
140 'GEOMETRYFROMWKB', // GeometryFromWKB()
141 'GEOMETRYN', // GeometryN() geometrycollection-property-functions.html
142 'GEOMETRYTYPE', // GeometryType() general-geometry-property-functions.html
143 'GEOMFROMTEXT', // GeomFromText()
144 'GEOMFROMWKB', // GeomFromWKB()
145 'GET_FORMAT',
146 'GET_LOCK',
147 'GLENGTH', // GLength() linestring-property-functions.html
148 'GREATEST',
149 'GROUP_CONCAT',
150 'GROUP_UNIQUE_USERS',
151 'HEX',
152 'HOUR',
153 'IF', //control-flow-functions.html
154 'IFNULL',
155 'INET_ATON',
156 'INET_NTOA',
157 'INSERT', // string-functions.html
158 'INSTR',
159 'INTERIORRINGN', // InteriorRingN() polygon-property-functions.html
160 'INTERSECTION', // Intersection()
161 'INTERSECTS', // Intersects()
162 'INTERVAL',
163 'ISCLOSED', // IsClosed() multilinestring-property-functions.html
164 'ISEMPTY', // IsEmpty() general-geometry-property-functions.html
165 'ISNULL',
166 'ISRING', // IsRing() linestring-property-functions.html
167 'ISSIMPLE', // IsSimple() general-geometry-property-functions.html
168 'IS_FREE_LOCK',
169 'IS_USED_LOCK', // miscellaneous-functions.html
170 'LAST_DAY',
171 'LAST_INSERT_ID',
172 'LCASE',
173 'LEAST',
174 'LEFT',
175 'LENGTH',
176 'LINEFROMTEXT', // LineFromText()
177 'LINEFROMWKB', // LineFromWKB()
178 'LINESTRING', // LineString()
179 'LINESTRINGFROMTEXT', // LineStringFromText()
180 'LINESTRINGFROMWKB', // LineStringFromWKB()
181 'LN',
182 'LOAD_FILE',
183 'LOCALTIME',
184 'LOCALTIMESTAMP',
185 'LOCATE',
186 'LOG',
187 'LOG10',
188 'LOG2',
189 'LOWER',
190 'LPAD',
191 'LTRIM',
192 'MAKEDATE',
193 'MAKETIME',
194 'MAKE_SET',
195 'MASTER_POS_WAIT',
196 'MAX',
197 'MBRCONTAINS', // MBRContains()
198 'MBRDISJOINT', // MBRDisjoint()
199 'MBREQUAL', // MBREqual()
200 'MBRINTERSECTS', // MBRIntersects()
201 'MBROVERLAPS', // MBROverlaps()
202 'MBRTOUCHES', // MBRTouches()
203 'MBRWITHIN', // MBRWithin()
204 'MD5',
205 'MICROSECOND',
206 'MID',
207 'MIN',
208 'MINUTE',
209 'MLINEFROMTEXT', // MLineFromText()
210 'MLINEFROMWKB', // MLineFromWKB()
211 'MOD',
212 'MONTH',
213 'MONTHNAME',
214 'MPOINTFROMTEXT', // MPointFromText()
215 'MPOINTFROMWKB', // MPointFromWKB()
216 'MPOLYFROMTEXT', // MPolyFromText()
217 'MPOLYFROMWKB', // MPolyFromWKB()
218 'MULTILINESTRING', // MultiLineString()
219 'MULTILINESTRINGFROMTEXT', // MultiLineStringFromText()
220 'MULTILINESTRINGFROMWKB', // MultiLineStringFromWKB()
221 'MULTIPOINT', // MultiPoint()
222 'MULTIPOINTFROMTEXT', // MultiPointFromText()
223 'MULTIPOINTFROMWKB', // MultiPointFromWKB()
224 'MULTIPOLYGON', // MultiPolygon()
225 'MULTIPOLYGONFROMTEXT', // MultiPolygonFromText()
226 'MULTIPOLYGONFROMWKB', // MultiPolygonFromWKB()
227 'NAME_CONST', // NAME_CONST()
228 'NOW', // NOW()
229 'NULLIF',
230 'NUMGEOMETRIES', // NumGeometries() geometrycollection-property-functions.html
231 'NUMINTERIORRINGS', // NumInteriorRings() polygon-property-functions.html
232 'NUMPOINTS', // NumPoints() linestring-property-functions.html
233 'OCT',
234 'OCTET_LENGTH',
235 'OLD_PASSWORD',
236 'ORD',
237 'OVERLAPS', // Overlaps()
238 'PASSWORD',
239 'PERIOD_ADD',
240 'PERIOD_DIFF',
241 'PI',
242 'POINT', // Point()
243 'POINTFROMTEXT', // PointFromText()
244 'POINTFROMWKB', // PointFromWKB()
245 'POINTN', // PointN() inestring-property-functions.html
246 'POINTONSURFACE', // PointOnSurface() multipolygon-property-functions.html
247 'POLYFROMTEXT', // PolyFromText()
248 'POLYFROMWKB', // PolyFromWKB()
249 'POLYGON', // Polygon()
250 'POLYGONFROMTEXT', // PolygonFromText()
251 'POLYGONFROMWKB', // PolygonFromWKB()
252 'POSITION',
253 'POW',
254 'POWER',
255 'QUARTER',
256 'QUOTE',
257 'RADIANS',
258 'RAND',
259 'RELATED', // Related()
260 'RELEASE_LOCK',
261 'REPEAT',
262 'REPLACE', // string-functions.html
263 'REVERSE',
264 'RIGHT',
265 'ROUND',
266 'ROW_COUNT', // information-functions.html
267 'RPAD',
268 'RTRIM',
269 'SCHEMA', // information-functions.html
270 'SECOND',
271 'SEC_TO_TIME',
272 'SESSION_USER',
273 'SHA',
274 'SHA1',
275 'SIGN',
276 'SIN',
277 'SLEEP', // miscellaneous-functions.html
278 'SOUNDEX',
279 'SPACE',
280 'SQRT',
281 'SRID', // general-geometry-property-functions.html
282 'STARTPOINT', // StartPoint() linestring-property-functions.html
283 'STD',
284 'STDDEV',
285 'STDDEV_POP', // group-by-functions.html
286 'STDDEV_SAMP', // group-by-functions.html
287 'STRCMP',
288 'STR_TO_DATE',
289 'SUBDATE',
290 'SUBSTR',
291 'SUBSTRING',
292 'SUBSTRING_INDEX',
293 'SUBTIME',
294 'SUM',
295 'SYMDIFFERENCE', // SymDifference()
296 'SYSDATE',
297 'SYSTEM_USER',
298 'TAN',
299 'TIME',
300 'TIMEDIFF',
301 'TIMESTAMP',
302 'TIMESTAMPADD',
303 'TIMESTAMPDIFF',
304 'TIME_FORMAT',
305 'TIME_TO_SEC',
306 'TOUCHES', // Touches()
307 'TO_DAYS',
308 'TRIM',
309 'TRUNCATE', // mathematical-functions.html
310 'UCASE',
311 'UNCOMPRESS', // string-functions.html
312 'UNCOMPRESSED_LENGTH', // string-functions.html
313 'UNHEX', // string-functions.html
314 'UNIQUE_USERS',
315 'UNIX_TIMESTAMP',
316 'UPDATEXML', // UpdateXML() xml-functions.html
317 'UPPER',
318 'USER',
319 'UTC_DATE',
320 'UTC_TIME',
321 'UTC_TIMESTAMP',
322 'UUID', // miscellaneous-functions.html
323 'VARIANCE', // group-by-functions.html
324 'VAR_POP', // group-by-functions.html
325 'VAR_SAMP', // group-by-functions.html
326 'VERSION',
327 'WEEK',
328 'WEEKDAY',
329 'WEEKOFYEAR',
330 'WITHIN', // Within()
331 'X', // point-property-functions.html
332 'Y', // point-property-functions.html
333 'YEAR',
334 'YEARWEEK'
337 * $PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
339 * @global integer MySQL attributes count
341 $PMA_SQPdata_function_name_cnt = 298;
344 * DEBUG
345 $test_PMA_SQPdata_function_name = $PMA_SQPdata_function_name;
346 sort($PMA_SQPdata_function_name);
347 if ($PMA_SQPdata_function_name != $test_PMA_SQPdata_function_name) {
348 echo 'sort properly like this<pre>';
349 print_r($PMA_SQPdata_function_name);
350 echo '</pre>';
355 * @global array MySQL attributes
357 $PMA_SQPdata_column_attrib = array (
358 'ARCHIVE', // Engine
359 'ASCII',
360 'AUTO_INCREMENT',
361 'BDB', // Engine
362 'BERKELEYDB', // Engine alias BDB
363 'BINARY',
364 'BLACKHOLE', // Engine
365 'CSV', // Engine
366 'DEFAULT',
367 'EXAMPLE', // Engine
368 'FEDERATED', // Engine
369 'HEAP', // Engine
370 'INNOBASE', // Engine alias InnoDB
371 'INNODB', // Engine InnoDB
372 'ISAM', // Engine
373 'MARIA', // Engine
374 'MEMORY', // Engine alias HEAP, but preferred
375 'MERGE', // Engine
376 'MRG_ISAM', // Engine
377 'MRG_MYISAM', // Engine alias MERGE
378 'MYISAM', // Engine MyISAM
379 'NATIONAL',
380 'NDB', // Engine alias NDBCLUSTER
381 'NDBCLUSTER', // Engine
382 'PRECISION',
383 'UNDEFINED',
384 'UNICODE',
385 'UNSIGNED',
386 'VARYING',
387 'ZEROFILL'
390 * $PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
392 * @global integer MySQL attributes count
394 $PMA_SQPdata_column_attrib_cnt = 30;
397 * words that are reserved by MySQL and may not be used as identifiers without quotes
399 * @see http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
401 * @global array MySQL reserved words
403 $PMA_SQPdata_reserved_word = array (
404 'ACCESSIBLE', // 5.1
405 'ACTION',
406 'ADD',
407 'AFTER',
408 'AGAINST',
409 'AGGREGATE',
410 'ALGORITHM',
411 'ALL',
412 'ALTER',
413 'ANALYSE',
414 'ANALYZE',
415 'AND',
416 'AS',
417 'ASC',
418 'AUTOCOMMIT',
419 'AUTO_INCREMENT',
420 'AVG_ROW_LENGTH',
421 'BACKUP',
422 'BEGIN',
423 'BETWEEN',
424 'BINLOG',
425 'BOTH',
426 'BY',
427 'CASCADE',
428 'CASE',
429 'CHANGE',
430 'CHANGED',
431 'CHARSET',
432 'CHECK',
433 'CHECKSUM',
434 'COLLATE',
435 'COLLATION',
436 'COLUMN',
437 'COLUMNS',
438 'COMMENT',
439 'COMMIT',
440 'COMMITTED',
441 'COMPRESSED',
442 'CONCURRENT',
443 'CONSTRAINT',
444 'CONTAINS',
445 'CONVERT',
446 'CREATE',
447 'CROSS',
448 'CURRENT_TIMESTAMP',
449 'DATABASE',
450 'DATABASES',
451 'DAY',
452 'DAY_HOUR',
453 'DAY_MINUTE',
454 'DAY_SECOND',
455 'DEFINER',
456 'DELAYED',
457 'DELAY_KEY_WRITE',
458 'DELETE',
459 'DESC',
460 'DESCRIBE',
461 'DETERMINISTIC',
462 'DISTINCT',
463 'DISTINCTROW',
464 'DIV',
465 'DO',
466 'DROP',
467 'DUMPFILE',
468 'DUPLICATE',
469 'DYNAMIC',
470 'ELSE',
471 'ENCLOSED',
472 'END',
473 'ENGINE',
474 'ENGINES',
475 'ESCAPE',
476 'ESCAPED',
477 'EVENTS',
478 'EXECUTE',
479 'EXISTS',
480 'EXPLAIN',
481 'EXTENDED',
482 'FAST',
483 'FIELDS',
484 'FILE',
485 'FIRST',
486 'FIXED',
487 'FLUSH',
488 'FOR',
489 'FORCE',
490 'FOREIGN',
491 'FROM',
492 'FULL',
493 'FULLTEXT',
494 'FUNCTION',
495 'GEMINI',
496 'GEMINI_SPIN_RETRIES',
497 'GLOBAL',
498 'GRANT',
499 'GRANTS',
500 'GROUP',
501 'HAVING',
502 'HEAP',
503 'HIGH_PRIORITY',
504 'HOSTS',
505 'HOUR',
506 'HOUR_MINUTE',
507 'HOUR_SECOND',
508 'IDENTIFIED',
509 'IF',
510 'IGNORE',
511 'IN',
512 'INDEX',
513 'INDEXES',
514 'INFILE',
515 'INNER',
516 'INSERT',
517 'INSERT_ID',
518 'INSERT_METHOD',
519 'INTERVAL',
520 'INTO',
521 'INVOKER',
522 'IS',
523 'ISOLATION',
524 'JOIN',
525 'KEY',
526 'KEYS',
527 'KILL',
528 'LAST_INSERT_ID',
529 'LEADING',
530 'LEFT',
531 'LIKE',
532 'LIMIT',
533 'LINEAR', // 5.1
534 'LINES',
535 'LOAD',
536 'LOCAL',
537 'LOCK',
538 'LOCKS',
539 'LOGS',
540 'LOW_PRIORITY',
541 'MARIA', // 5.1 ?
542 'MASTER',
543 'MASTER_CONNECT_RETRY',
544 'MASTER_HOST',
545 'MASTER_LOG_FILE',
546 'MASTER_LOG_POS',
547 'MASTER_PASSWORD',
548 'MASTER_PORT',
549 'MASTER_USER',
550 'MATCH',
551 'MAX_CONNECTIONS_PER_HOUR',
552 'MAX_QUERIES_PER_HOUR',
553 'MAX_ROWS',
554 'MAX_UPDATES_PER_HOUR',
555 'MAX_USER_CONNECTIONS',
556 'MEDIUM',
557 'MERGE',
558 'MINUTE',
559 'MINUTE_SECOND',
560 'MIN_ROWS',
561 'MODE',
562 'MODIFY',
563 'MONTH',
564 'MRG_MYISAM',
565 'MYISAM',
566 'NAMES',
567 'NATURAL',
568 // 'NO' is not allowed in SQL-99 but is allowed in MySQL
569 //'NO',
570 'NOT',
571 'NULL',
572 'OFFSET',
573 'ON',
574 'OPEN',
575 'OPTIMIZE',
576 'OPTION',
577 'OPTIONALLY',
578 'OR',
579 'ORDER',
580 'OUTER',
581 'OUTFILE',
582 'PACK_KEYS',
583 'PAGE', // 5.1-maria ?
584 'PARTIAL',
585 'PARTITION', // 5.1
586 'PARTITIONS', // 5.1
587 'PASSWORD',
588 'PRIMARY',
589 'PRIVILEGES',
590 'PROCEDURE',
591 'PROCESS',
592 'PROCESSLIST',
593 'PURGE',
594 'QUICK',
595 'RAID0',
596 'RAID_CHUNKS',
597 'RAID_CHUNKSIZE',
598 'RAID_TYPE',
599 'RANGE', // 5.1
600 'READ',
601 'READ_ONLY', // 5.1
602 'READ_WRITE', // 5.1
603 'REFERENCES',
604 'REGEXP',
605 'RELOAD',
606 'RENAME',
607 'REPAIR',
608 'REPEATABLE',
609 'REPLACE',
610 'REPLICATION',
611 'RESET',
612 'RESTORE',
613 'RESTRICT',
614 'RETURN',
615 'RETURNS',
616 'REVOKE',
617 'RIGHT',
618 'RLIKE',
619 'ROLLBACK',
620 'ROW',
621 'ROWS',
622 'ROW_FORMAT',
623 'SECOND',
624 'SECURITY',
625 'SELECT',
626 'SEPARATOR',
627 'SERIALIZABLE',
628 'SESSION',
629 'SHARE',
630 'SHOW',
631 'SHUTDOWN',
632 'SLAVE',
633 'SONAME',
634 'SOUNDS', // string-functions.html
635 'SQL',
636 'SQL_AUTO_IS_NULL',
637 'SQL_BIG_RESULT',
638 'SQL_BIG_SELECTS',
639 'SQL_BIG_TABLES',
640 'SQL_BUFFER_RESULT',
641 'SQL_CACHE',
642 'SQL_CALC_FOUND_ROWS',
643 'SQL_LOG_BIN',
644 'SQL_LOG_OFF',
645 'SQL_LOG_UPDATE',
646 'SQL_LOW_PRIORITY_UPDATES',
647 'SQL_MAX_JOIN_SIZE',
648 'SQL_NO_CACHE',
649 'SQL_QUOTE_SHOW_CREATE',
650 'SQL_SAFE_UPDATES',
651 'SQL_SELECT_LIMIT',
652 'SQL_SLAVE_SKIP_COUNTER',
653 'SQL_SMALL_RESULT',
654 'SQL_WARNINGS',
655 'START',
656 'STARTING',
657 'STATUS',
658 'STOP',
659 'STORAGE',
660 'STRAIGHT_JOIN',
661 'STRING',
662 'STRIPED',
663 'SUPER',
664 'TABLE',
665 'TABLES',
666 'TEMPORARY',
667 'TERMINATED',
668 'THEN',
669 'TO',
670 'TRAILING',
671 'TRANSACTIONAL', // 5.1 ?
672 'TRUNCATE',
673 'TYPE',
674 'TYPES',
675 'UNCOMMITTED',
676 'UNION',
677 'UNIQUE',
678 'UNLOCK',
679 'UPDATE',
680 'USAGE',
681 'USE',
682 'USING',
683 'VALUES',
684 'VARIABLES',
685 'VIEW',
686 'WHEN',
687 'WHERE',
688 'WITH',
689 'WORK',
690 'WRITE',
691 'XOR',
692 'YEAR_MONTH'
695 * $PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
697 * @global integer MySQL reserved words count
699 $PMA_SQPdata_reserved_word_cnt = 287;
701 * The previous array must be sorted so that the binary search work.
702 * Sometimes a word is not added in the correct order, so
703 * this debugging code shows the problem. The same should be
704 * done for all arrays.
707 $original = $PMA_SQPdata_reserved_word;
708 sort($PMA_SQPdata_reserved_word);
709 $difference = array_diff_assoc($original, $PMA_SQPdata_reserved_word);
710 echo '<pre>';
711 print_r($difference);
712 echo '</pre>';
713 echo '<pre>';
714 print_r($PMA_SQPdata_reserved_word);
715 echo '</pre>';
719 * words forbidden to be used as column or table name wihtout quotes
720 * as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
722 * @global array MySQL forbidden words
724 $PMA_SQPdata_forbidden_word = array (
725 'ACCESSIBLE', // 5.1
726 'ACTION',
727 'ADD',
728 'AFTER',
729 'AGAINST',
730 'AGGREGATE',
731 'ALGORITHM',
732 'ALL',
733 'ALTER',
734 'ANALYZE',
735 'AND',
736 'ANY',
737 'AS',
738 'ASC',
739 'ASCII',
740 'ASENSITIVE',
741 'AUTO_INCREMENT',
742 'AVG',
743 'AVG_ROW_LENGTH',
744 'BACKUP',
745 'BDB',
746 'BEFORE',
747 'BEGIN',
748 'BERKELEYDB',
749 'BETWEEN',
750 'BIGINT',
751 'BINARY',
752 'BINLOG',
753 'BIT',
754 'BLOB',
755 'BOOL',
756 'BOOLEAN',
757 'BOTH',
758 'BTREE',
759 'BY',
760 'BYTE',
761 'CACHE',
762 'CALL',
763 'CASCADE',
764 'CASCADED',
765 'CASE',
766 'CHAIN',
767 'CHANGE',
768 'CHANGED',
769 'CHAR',
770 'CHARACTER',
771 'CHARSET',
772 'CHECK',
773 'CHECKSUM',
774 'CIPHER',
775 'CLOSE',
776 'COLLATE',
777 'COLLATION',
778 'COLUMN',
779 'COLUMNS',
780 'COMMENT',
781 'COMMIT',
782 'COMMITTED',
783 'COMPACT',
784 'COMPRESSED',
785 'CONCURRENT',
786 'CONDITION',
787 'CONNECTION',
788 'CONSISTENT',
789 'CONSTRAINT',
790 'CONTAINS',
791 'CONTINUE',
792 'CONVERT',
793 'CREATE',
794 'CROSS',
795 'CUBE',
796 'CURRENT_DATE',
797 'CURRENT_TIME',
798 'CURRENT_TIMESTAMP',
799 'CURRENT_USER',
800 'CURSOR',
801 'DATA',
802 'DATABASE',
803 'DATABASES',
804 'DATE',
805 'DATETIME',
806 'DAY',
807 'DAY_HOUR',
808 'DAY_MICROSECOND',
809 'DAY_MINUTE',
810 'DAY_SECOND',
811 'DEALLOCATE',
812 'DEC',
813 'DECIMAL',
814 'DECLARE',
815 'DEFAULT',
816 'DEFINER',
817 'DELAYED',
818 'DELAY_KEY_WRITE',
819 'DELETE',
820 'DESC',
821 'DESCRIBE',
822 'DES_KEY_FILE',
823 'DETERMINISTIC',
824 'DIRECTORY',
825 'DISABLE',
826 'DISCARD',
827 'DISTINCT',
828 'DISTINCTROW',
829 'DIV',
830 'DO',
831 'DOUBLE',
832 'DROP',
833 'DUAL',
834 'DUMPFILE',
835 'DUPLICATE',
836 'DYNAMIC',
837 'EACH',
838 'ELSE',
839 'ELSEIF',
840 'ENABLE',
841 'ENCLOSED',
842 'END',
843 'ENGINE',
844 'ENGINES',
845 'ENUM',
846 'ERRORS',
847 'ESCAPE',
848 'ESCAPED',
849 'EVENTS',
850 'EXECUTE',
851 'EXISTS',
852 'EXIT',
853 'EXPANSION',
854 'EXPLAIN',
855 'EXTENDED',
856 'FALSE',
857 'FAST',
858 'FETCH',
859 'FIELDS',
860 'FILE',
861 'FIRST',
862 'FIXED',
863 'FLOAT',
864 'FLOAT4',
865 'FLOAT8',
866 'FLUSH',
867 'FOR',
868 'FORCE',
869 'FOREIGN',
870 'FOUND',
871 'FRAC_SECOND',
872 'FROM',
873 'FULL',
874 'FULLTEXT',
875 'FUNCTION',
876 'GEOMETRY',
877 'GEOMETRYCOLLECTION',
878 'GET_FORMAT',
879 'GLOBAL',
880 'GOTO',
881 'GRANT',
882 'GRANTS',
883 'GROUP',
884 'HANDLER',
885 'HASH',
886 'HAVING',
887 'HELP',
888 'HIGH_PRIORITY',
889 'HOSTS',
890 'HOUR',
891 'HOUR_MICROSECOND',
892 'HOUR_MINUTE',
893 'HOUR_SECOND',
894 'IDENTIFIED',
895 'IF',
896 'IGNORE',
897 'IMPORT',
898 'IN',
899 'INDEX',
900 'INDEXES',
901 'INFILE',
902 'INNER',
903 'INNOBASE',
904 'INNODB',
905 'INOUT',
906 'INSENSITIVE',
907 'INSERT',
908 'INSERT_METHOD',
909 'INT',
910 'INT1',
911 'INT2',
912 'INT3',
913 'INT4',
914 'INT8',
915 'INTEGER',
916 'INTERVAL',
917 'INTO',
918 'INVOKER',
919 'IO_THREAD',
920 'IS',
921 'ISOLATION',
922 'ISSUER',
923 'ITERATE',
924 'JOIN',
925 'KEY',
926 'KEYS',
927 'KILL',
928 'LABEL',
929 'LANGUAGE',
930 'LAST',
931 'LEADING',
932 'LEAVE',
933 'LEAVES',
934 'LEFT',
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 'READS',
1048 'READ_ONLY', // 5.1
1049 'READ_WRITE', // 5.1
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 = 482;
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 />' : '';