Polish update (#3062614).
[phpmyadmin/dkf.git] / libraries / sqlparser.data.php
blob5fb1451df2da9b6fb16be437cb4b926700165560
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 'LEVEL',
532 'LIKE',
533 'LIMIT',
534 'LINEAR', // 5.1
535 'LINES',
536 'LOAD',
537 'LOCAL',
538 'LOCK',
539 'LOCKS',
540 'LOGS',
541 'LOW_PRIORITY',
542 'MARIA', // 5.1 ?
543 'MASTER',
544 'MASTER_CONNECT_RETRY',
545 'MASTER_HOST',
546 'MASTER_LOG_FILE',
547 'MASTER_LOG_POS',
548 'MASTER_PASSWORD',
549 'MASTER_PORT',
550 'MASTER_USER',
551 'MATCH',
552 'MAX_CONNECTIONS_PER_HOUR',
553 'MAX_QUERIES_PER_HOUR',
554 'MAX_ROWS',
555 'MAX_UPDATES_PER_HOUR',
556 'MAX_USER_CONNECTIONS',
557 'MEDIUM',
558 'MERGE',
559 'MINUTE',
560 'MINUTE_SECOND',
561 'MIN_ROWS',
562 'MODE',
563 'MODIFY',
564 'MONTH',
565 'MRG_MYISAM',
566 'MYISAM',
567 'NAMES',
568 'NATURAL',
569 // 'NO' is not allowed in SQL-99 but is allowed in MySQL
570 //'NO',
571 'NOT',
572 'NULL',
573 'OFFSET',
574 'ON',
575 'OPEN',
576 'OPTIMIZE',
577 'OPTION',
578 'OPTIONALLY',
579 'OR',
580 'ORDER',
581 'OUTER',
582 'OUTFILE',
583 'PACK_KEYS',
584 'PAGE', // 5.1-maria ?
585 'PARTIAL',
586 'PARTITION', // 5.1
587 'PARTITIONS', // 5.1
588 'PASSWORD',
589 'PRIMARY',
590 'PRIVILEGES',
591 'PROCEDURE',
592 'PROCESS',
593 'PROCESSLIST',
594 'PURGE',
595 'QUICK',
596 'RAID0',
597 'RAID_CHUNKS',
598 'RAID_CHUNKSIZE',
599 'RAID_TYPE',
600 'RANGE', // 5.1
601 'READ',
602 'READ_ONLY', // 5.1
603 'READ_WRITE', // 5.1
604 'REFERENCES',
605 'REGEXP',
606 'RELOAD',
607 'RENAME',
608 'REPAIR',
609 'REPEATABLE',
610 'REPLACE',
611 'REPLICATION',
612 'RESET',
613 'RESTORE',
614 'RESTRICT',
615 'RETURN',
616 'RETURNS',
617 'REVOKE',
618 'RIGHT',
619 'RLIKE',
620 'ROLLBACK',
621 'ROW',
622 'ROWS',
623 'ROW_FORMAT',
624 'SECOND',
625 'SECURITY',
626 'SELECT',
627 'SEPARATOR',
628 'SERIALIZABLE',
629 'SESSION',
630 'SHARE',
631 'SHOW',
632 'SHUTDOWN',
633 'SLAVE',
634 'SONAME',
635 'SOUNDS', // string-functions.html
636 'SQL',
637 'SQL_AUTO_IS_NULL',
638 'SQL_BIG_RESULT',
639 'SQL_BIG_SELECTS',
640 'SQL_BIG_TABLES',
641 'SQL_BUFFER_RESULT',
642 'SQL_CACHE',
643 'SQL_CALC_FOUND_ROWS',
644 'SQL_LOG_BIN',
645 'SQL_LOG_OFF',
646 'SQL_LOG_UPDATE',
647 'SQL_LOW_PRIORITY_UPDATES',
648 'SQL_MAX_JOIN_SIZE',
649 'SQL_NO_CACHE',
650 'SQL_QUOTE_SHOW_CREATE',
651 'SQL_SAFE_UPDATES',
652 'SQL_SELECT_LIMIT',
653 'SQL_SLAVE_SKIP_COUNTER',
654 'SQL_SMALL_RESULT',
655 'SQL_WARNINGS',
656 'START',
657 'STARTING',
658 'STATUS',
659 'STOP',
660 'STORAGE',
661 'STRAIGHT_JOIN',
662 'STRING',
663 'STRIPED',
664 'SUPER',
665 'TABLE',
666 'TABLES',
667 'TEMPORARY',
668 'TERMINATED',
669 'THEN',
670 'TO',
671 'TRAILING',
672 'TRANSACTIONAL', // 5.1 ?
673 'TRUNCATE',
674 'TYPE',
675 'TYPES',
676 'UNCOMMITTED',
677 'UNION',
678 'UNIQUE',
679 'UNLOCK',
680 'UPDATE',
681 'USAGE',
682 'USE',
683 'USING',
684 'VALUES',
685 'VARIABLES',
686 'VIEW',
687 'WHEN',
688 'WHERE',
689 'WITH',
690 'WORK',
691 'WRITE',
692 'XOR',
693 'YEAR_MONTH'
696 * $PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
698 * @global integer MySQL reserved words count
700 $PMA_SQPdata_reserved_word_cnt = 288;
702 * The previous array must be sorted so that the binary search work.
703 * Sometimes a word is not added in the correct order, so
704 * this debugging code shows the problem. The same should be
705 * done for all arrays.
708 $original = $PMA_SQPdata_reserved_word;
709 sort($PMA_SQPdata_reserved_word);
710 $difference = array_diff_assoc($original, $PMA_SQPdata_reserved_word);
711 echo '<pre>';
712 print_r($difference);
713 echo '</pre>';
714 echo '<pre>';
715 print_r($PMA_SQPdata_reserved_word);
716 echo '</pre>';
720 * words forbidden to be used as column or table name wihtout quotes
721 * as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
723 * @global array MySQL forbidden words
725 $PMA_SQPdata_forbidden_word = array (
726 'ACCESSIBLE', // 5.1
727 'ACTION',
728 'ADD',
729 'AFTER',
730 'AGAINST',
731 'AGGREGATE',
732 'ALGORITHM',
733 'ALL',
734 'ALTER',
735 'ANALYZE',
736 'AND',
737 'ANY',
738 'AS',
739 'ASC',
740 'ASCII',
741 'ASENSITIVE',
742 'AUTO_INCREMENT',
743 'AVG',
744 'AVG_ROW_LENGTH',
745 'BACKUP',
746 'BDB',
747 'BEFORE',
748 'BEGIN',
749 'BERKELEYDB',
750 'BETWEEN',
751 'BIGINT',
752 'BINARY',
753 'BINLOG',
754 'BIT',
755 'BLOB',
756 'BOOL',
757 'BOOLEAN',
758 'BOTH',
759 'BTREE',
760 'BY',
761 'BYTE',
762 'CACHE',
763 'CALL',
764 'CASCADE',
765 'CASCADED',
766 'CASE',
767 'CHAIN',
768 'CHANGE',
769 'CHANGED',
770 'CHAR',
771 'CHARACTER',
772 'CHARSET',
773 'CHECK',
774 'CHECKSUM',
775 'CIPHER',
776 'CLOSE',
777 'COLLATE',
778 'COLLATION',
779 'COLUMN',
780 'COLUMNS',
781 'COMMENT',
782 'COMMIT',
783 'COMMITTED',
784 'COMPACT',
785 'COMPRESSED',
786 'CONCURRENT',
787 'CONDITION',
788 'CONNECTION',
789 'CONSISTENT',
790 'CONSTRAINT',
791 'CONTAINS',
792 'CONTINUE',
793 'CONVERT',
794 'CREATE',
795 'CROSS',
796 'CUBE',
797 'CURRENT_DATE',
798 'CURRENT_TIME',
799 'CURRENT_TIMESTAMP',
800 'CURRENT_USER',
801 'CURSOR',
802 'DATA',
803 'DATABASE',
804 'DATABASES',
805 'DATE',
806 'DATETIME',
807 'DAY',
808 'DAY_HOUR',
809 'DAY_MICROSECOND',
810 'DAY_MINUTE',
811 'DAY_SECOND',
812 'DEALLOCATE',
813 'DEC',
814 'DECIMAL',
815 'DECLARE',
816 'DEFAULT',
817 'DEFINER',
818 'DELAYED',
819 'DELAY_KEY_WRITE',
820 'DELETE',
821 'DESC',
822 'DESCRIBE',
823 'DES_KEY_FILE',
824 'DETERMINISTIC',
825 'DIRECTORY',
826 'DISABLE',
827 'DISCARD',
828 'DISTINCT',
829 'DISTINCTROW',
830 'DIV',
831 'DO',
832 'DOUBLE',
833 'DROP',
834 'DUAL',
835 'DUMPFILE',
836 'DUPLICATE',
837 'DYNAMIC',
838 'EACH',
839 'ELSE',
840 'ELSEIF',
841 'ENABLE',
842 'ENCLOSED',
843 'END',
844 'ENGINE',
845 'ENGINES',
846 'ENUM',
847 'ERRORS',
848 'ESCAPE',
849 'ESCAPED',
850 'EVENTS',
851 'EXECUTE',
852 'EXISTS',
853 'EXIT',
854 'EXPANSION',
855 'EXPLAIN',
856 'EXTENDED',
857 'FALSE',
858 'FAST',
859 'FETCH',
860 'FIELDS',
861 'FILE',
862 'FIRST',
863 'FIXED',
864 'FLOAT',
865 'FLOAT4',
866 'FLOAT8',
867 'FLUSH',
868 'FOR',
869 'FORCE',
870 'FOREIGN',
871 'FOUND',
872 'FRAC_SECOND',
873 'FROM',
874 'FULL',
875 'FULLTEXT',
876 'FUNCTION',
877 'GEOMETRY',
878 'GEOMETRYCOLLECTION',
879 'GET_FORMAT',
880 'GLOBAL',
881 'GOTO',
882 'GRANT',
883 'GRANTS',
884 'GROUP',
885 'HANDLER',
886 'HASH',
887 'HAVING',
888 'HELP',
889 'HIGH_PRIORITY',
890 'HOSTS',
891 'HOUR',
892 'HOUR_MICROSECOND',
893 'HOUR_MINUTE',
894 'HOUR_SECOND',
895 'IDENTIFIED',
896 'IF',
897 'IGNORE',
898 'IMPORT',
899 'IN',
900 'INDEX',
901 'INDEXES',
902 'INFILE',
903 'INNER',
904 'INNOBASE',
905 'INNODB',
906 'INOUT',
907 'INSENSITIVE',
908 'INSERT',
909 'INSERT_METHOD',
910 'INT',
911 'INT1',
912 'INT2',
913 'INT3',
914 'INT4',
915 'INT8',
916 'INTEGER',
917 'INTERVAL',
918 'INTO',
919 'INVOKER',
920 'IO_THREAD',
921 'IS',
922 'ISOLATION',
923 'ISSUER',
924 'ITERATE',
925 'JOIN',
926 'KEY',
927 'KEYS',
928 'KILL',
929 'LABEL',
930 'LANGUAGE',
931 'LAST',
932 'LEADING',
933 'LEAVE',
934 'LEAVES',
935 'LEFT',
936 'LEVEL',
937 'LIKE',
938 'LIMIT',
939 'LINEAR', // 5.1
940 'LINES',
941 'LINESTRING',
942 'LOAD',
943 'LOCAL',
944 'LOCALTIME',
945 'LOCALTIMESTAMP',
946 'LOCK',
947 'LOCKS',
948 'LOGS',
949 'LONG',
950 'LONGBLOB',
951 'LONGTEXT',
952 'LOOP',
953 'LOW_PRIORITY',
954 'MASTER',
955 'MASTER_CONNECT_RETRY',
956 'MASTER_HOST',
957 'MASTER_LOG_FILE',
958 'MASTER_LOG_POS',
959 'MASTER_PASSWORD',
960 'MASTER_PORT',
961 'MASTER_SERVER_ID',
962 'MASTER_SSL',
963 'MASTER_SSL_CA',
964 'MASTER_SSL_CAPATH',
965 'MASTER_SSL_CERT',
966 'MASTER_SSL_CIPHER',
967 'MASTER_SSL_KEY',
968 'MASTER_USER',
969 'MATCH',
970 'MAX_CONNECTIONS_PER_HOUR',
971 'MAX_QUERIES_PER_HOUR',
972 'MAX_ROWS',
973 'MAX_UPDATES_PER_HOUR',
974 'MAX_USER_CONNECTIONS',
975 'MEDIUM',
976 'MEDIUMBLOB',
977 'MEDIUMINT',
978 'MEDIUMTEXT',
979 'MERGE',
980 'MICROSECOND',
981 'MIDDLEINT',
982 'MIGRATE',
983 'MINUTE',
984 'MINUTE_MICROSECOND',
985 'MINUTE_SECOND',
986 'MIN_ROWS',
987 'MOD',
988 'MODE',
989 'MODIFIES',
990 'MODIFY',
991 'MONTH',
992 'MULTILINESTRING',
993 'MULTIPOINT',
994 'MULTIPOLYGON',
995 'MUTEX',
996 'NAME',
997 'NAMES',
998 'NATIONAL',
999 'NATURAL',
1000 'NCHAR',
1001 'NDB',
1002 'NDBCLUSTER',
1003 'NEW',
1004 'NEXT',
1005 'NO',
1006 'NONE',
1007 'NOT',
1008 'NO_WRITE_TO_BINLOG',
1009 'NULL',
1010 'NUMERIC',
1011 'NVARCHAR',
1012 'OFFSET',
1013 'OLD_PASSWORD',
1014 'ON',
1015 'ONE',
1016 'ONE_SHOT',
1017 'OPEN',
1018 'OPTIMIZE',
1019 'OPTION',
1020 'OPTIONALLY',
1021 'OR',
1022 'ORDER',
1023 'OUT',
1024 'OUTER',
1025 'OUTFILE',
1026 'PACK_KEYS',
1027 'PARTIAL',
1028 'PASSWORD',
1029 'PHASE',
1030 'POINT',
1031 'POLYGON',
1032 'PRECISION',
1033 'PREPARE',
1034 'PREV',
1035 'PRIMARY',
1036 'PRIVILEGES',
1037 'PROCEDURE',
1038 'PROCESSLIST',
1039 'PURGE',
1040 'QUARTER',
1041 'QUERY',
1042 'QUICK',
1043 'RAID0',
1044 'RAID_CHUNKS',
1045 'RAID_CHUNKSIZE',
1046 'RAID_TYPE',
1047 'RANGE', // 5.1
1048 'READ',
1049 'READS',
1050 'READ_ONLY', // 5.1
1051 'READ_WRITE', // 5.1
1052 'REAL',
1053 'RECOVER',
1054 'REDUNDANT',
1055 'REFERENCES',
1056 'REGEXP',
1057 'RELAY_LOG_FILE',
1058 'RELAY_LOG_POS',
1059 'RELAY_THREAD',
1060 'RELEASE',
1061 'RELOAD',
1062 'RENAME',
1063 'REPAIR',
1064 'REPEAT',
1065 'REPEATABLE',
1066 'REPLACE',
1067 'REPLICATION',
1068 'REQUIRE',
1069 'RESET',
1070 'RESTORE',
1071 'RESTRICT',
1072 'RESUME',
1073 'RETURN',
1074 'RETURNS',
1075 'REVOKE',
1076 'RIGHT',
1077 'RLIKE',
1078 'ROLLBACK',
1079 'ROLLUP',
1080 'ROUTINE',
1081 'ROW',
1082 'ROWS',
1083 'ROW_FORMAT',
1084 'RTREE',
1085 'SAVEPOINT',
1086 'SCHEMA',
1087 'SCHEMAS',
1088 'SECOND',
1089 'SECOND_MICROSECOND',
1090 'SECURITY',
1091 'SELECT',
1092 'SENSITIVE',
1093 'SEPARATOR',
1094 'SERIAL',
1095 'SERIALIZABLE',
1096 'SESSION',
1097 'SET',
1098 'SHARE',
1099 'SHOW',
1100 'SHUTDOWN',
1101 'SIGNED',
1102 'SIMPLE',
1103 'SLAVE',
1104 'SMALLINT',
1105 'SNAPSHOT',
1106 'SOME',
1107 'SONAME',
1108 'SOUNDS',
1109 'SPATIAL',
1110 'SPECIFIC',
1111 'SQL',
1112 'SQLEXCEPTION',
1113 'SQLSTATE',
1114 'SQLWARNING',
1115 'SQL_BIG_RESULT',
1116 'SQL_BUFFER_RESULT',
1117 'SQL_CACHE',
1118 'SQL_CALC_FOUND_ROWS',
1119 'SQL_NO_CACHE',
1120 'SQL_SMALL_RESULT',
1121 'SQL_THREAD',
1122 'SQL_TSI_DAY',
1123 'SQL_TSI_FRAC_SECOND',
1124 'SQL_TSI_HOUR',
1125 'SQL_TSI_MINUTE',
1126 'SQL_TSI_MONTH',
1127 'SQL_TSI_QUARTER',
1128 'SQL_TSI_SECOND',
1129 'SQL_TSI_WEEK',
1130 'SQL_TSI_YEAR',
1131 'SSL',
1132 'START',
1133 'STARTING',
1134 'STATUS',
1135 'STOP',
1136 'STORAGE',
1137 'STRAIGHT_JOIN',
1138 'STRING',
1139 'STRIPED',
1140 'SUBJECT',
1141 'SUPER',
1142 'SUSPEND',
1143 'TABLE',
1144 'TABLES',
1145 'TABLESPACE',
1146 'TEMPORARY',
1147 'TEMPTABLE',
1148 'TERMINATED',
1149 'TEXT',
1150 'THEN',
1151 'TIME',
1152 'TIMESTAMP',
1153 'TIMESTAMPADD',
1154 'TIMESTAMPDIFF',
1155 'TINYBLOB',
1156 'TINYINT',
1157 'TINYTEXT',
1158 'TO',
1159 'TRAILING',
1160 'TRANSACTION',
1161 'TRIGGER',
1162 'TRIGGERS',
1163 'TRUE',
1164 'TRUNCATE',
1165 'TYPE',
1166 'TYPES',
1167 'UNCOMMITTED',
1168 'UNDEFINED',
1169 'UNDO',
1170 'UNICODE',
1171 'UNION',
1172 'UNIQUE',
1173 'UNKNOWN',
1174 'UNLOCK',
1175 'UNSIGNED',
1176 'UNTIL',
1177 'UPDATE',
1178 'USAGE',
1179 'USE',
1180 'USER',
1181 'USER_RESOURCES',
1182 'USE_FRM',
1183 'USING',
1184 'UTC_DATE',
1185 'UTC_TIME',
1186 'UTC_TIMESTAMP',
1187 'VALUE',
1188 'VALUES',
1189 'VARBINARY',
1190 'VARCHAR',
1191 'VARCHARACTER',
1192 'VARIABLES',
1193 'VARYING',
1194 'VIEW',
1195 'WARNINGS',
1196 'WEEK',
1197 'WHEN',
1198 'WHERE',
1199 'WHILE',
1200 'WITH',
1201 'WORK',
1202 'WRITE',
1203 'X509',
1204 'XA',
1205 'XOR',
1206 'YEAR',
1207 'YEAR_MONTH',
1208 'ZEROFILL'
1211 * count($PMA_SQPdata_forbidden_word);
1213 * @global integer MySQL forbidden words count
1215 $PMA_SQPdata_forbidden_word_cnt = 483;
1218 * the MySQL column/data types
1220 * @see http://dev.mysql.com/doc/refman/5.1/en/data-types.html
1221 * @see http://dev.mysql.com/doc/refman/5.1/en/mysql-spatial-datatypes.html
1223 * @global array MySQL column types
1225 $PMA_SQPdata_column_type = array (
1226 'BIGINT',
1227 'BINARY',
1228 'BIT',
1229 'BLOB',
1230 'BOOL',
1231 'BOOLEAN', // numeric-type-overview.html
1232 'CHAR',
1233 'CHARACTER',
1234 'DATE',
1235 'DATETIME',
1236 'DEC',
1237 'DECIMAL',
1238 'DOUBLE',
1239 'ENUM',
1240 'FLOAT',
1241 'FLOAT4',
1242 'FLOAT8',
1243 'GEOMETRY', // spatial
1244 'GEOMETRYCOLLECTION', // spatial
1245 'INT',
1246 'INT1',
1247 'INT2',
1248 'INT3',
1249 'INT4',
1250 'INT8',
1251 'INTEGER',
1252 'LINESTRING', // spatial
1253 'LONG',
1254 'LONGBLOB',
1255 'LONGTEXT',
1256 'MEDIUMBLOB',
1257 'MEDIUMINT',
1258 'MEDIUMTEXT',
1259 'MIDDLEINT',
1260 'MULTILINESTRING', // spatial
1261 'MULTIPOINT', // spatial
1262 'MULTIPOLYGON', // spatial
1263 'NCHAR',
1264 'NUMERIC',
1265 'POINT', // spatial
1266 'POLYGON', // spatial
1267 'REAL',
1268 'SERIAL', // alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
1269 'SET',
1270 'SMALLINT',
1271 'TEXT',
1272 'TIME',
1273 'TIMESTAMP',
1274 'TINYBLOB',
1275 'TINYINT',
1276 'TINYTEXT',
1277 'VARBINARY',
1278 'VARCHAR',
1279 'YEAR'
1282 * $PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
1284 * @global integer MySQL column types count
1286 $PMA_SQPdata_column_type_cnt = 54;
1289 * check counts
1290 foreach ($GLOBALS as $n => $a) {
1291 echo is_array($a) ? $n . ': ' . count($a) . '<br />' : '';