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