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