bug #1233349 db search in MySQL 5.0.x on fields without a charset
[phpmyadmin/crack.git] / libraries / sqlparser.data.php
blob0a2ed79d0402503884e671abc8888b1f9c752bdd
1 <?php
2 /* $Id$ */
3 // vim: expandtab sw=4 ts=4 sts=4:
6 /** SQL Parser Matching Data
8 * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
9 * http://www.orbis-terrarum.net/?l=people.robbat2
11 * This data is used by the SQL Parser to recognize keywords
13 * It has been extracted from the lex.h file in the MySQL BK tree
14 * (around 4.0.2) as well as the MySQL documentation.
17 $PMA_SQPdata_function_name = array (
18 'ABS',
19 'ACOS',
20 'ADDDATE',
21 'ADDTIME',
22 'AES_ENCRYPT',
23 'AES_DECRYPT',
24 'ASCII',
25 'ASIN',
26 'ATAN',
27 'ATAN2',
28 'AVG',
29 'BENCHMARK',
30 'BIN',
31 'BIT_AND',
32 'BIT_COUNT',
33 'BIT_LENGTH',
34 'BIT_OR',
35 'CAST',
36 'CEIL',
37 'CEILING',
38 'CHAR_LENGTH',
39 'CHARACTER_LENGTH',
40 'COALESCE',
41 'CONCAT',
42 'CONCAT_WS',
43 'CONNECTION_ID',
44 'CONV',
45 'CONVERT',
46 'CONVERT_TZ',
47 'COS',
48 'COT',
49 'COUNT',
50 'CURDATE',
51 'CURRENT_DATE',
52 'CURRENT_TIME',
53 'CURRENT_TIMESTAMP',
54 'CURRENT_USER',
55 'CURTIME',
56 'DATABASE',
57 'DATE_ADD',
58 'DATE_DIFF',
59 'DATE_FORMAT',
60 'DATE_SUB',
61 'DAY',
62 'DAYNAME',
63 'DAYOFMONTH',
64 'DAYOFWEEK',
65 'DAYOFYEAR',
66 'DECODE',
67 'DEGREES',
68 'DES_ENCRYPT',
69 'DES_DECRYPT',
70 'ELT',
71 'ENCODE',
72 'ENCRYPT',
73 'EXP',
74 'EXPORT_SET',
75 'EXTRACT',
76 'FIELD',
77 'FIND_IN_SET',
78 'FLOOR',
79 'FORMAT',
80 'FOUND_ROWS',
81 'FROM_DAYS',
82 'FROM_UNIXTIME',
83 'GET_FORMAT',
84 'GET_LOCK',
85 'GREATEST',
86 'GROUP_CONCAT',
87 'GROUP_UNIQUE_USERS',
88 'HEX',
89 'HOUR',
90 'IFNULL',
91 'INET_ATON',
92 'INET_NTOA',
93 'INSTR',
94 'INTERVAL',
95 'IS_FREE_LOCK',
96 'ISNULL',
97 'LAST_DAY',
98 'LAST_INSERT_ID',
99 'LCASE',
100 'LEAST',
101 'LEFT',
102 'LENGTH',
103 'LN',
104 'LOAD_FILE',
105 'LOCALTIME',
106 'LOCALTIMESTAMP',
107 'LOCATE',
108 'LOG',
109 'LOG2',
110 'LOG10',
111 'LOWER',
112 'LPAD',
113 'LTRIM',
114 'MAKE_SET',
115 'MAKEDATE',
116 'MAKETIME',
117 'MASTER_POS_WAIT',
118 'MAX',
119 'MD5',
120 'MICROSECOND',
121 'MID',
122 'MIN',
123 'MINUTE',
124 'MOD',
125 'MONTH',
126 'MONTHNAME',
127 'NOW',
128 'NULLIF',
129 'OCT',
130 'OCTET_LENGTH',
131 'OLD_PASSWORD',
132 'ORD',
133 'PASSWORD',
134 'PERIOD_ADD',
135 'PERIOD_DIFF',
136 'PI',
137 'POSITION',
138 'POW',
139 'POWER',
140 'QUARTER',
141 'QUOTE',
142 'RADIANS',
143 'RAND',
144 'RELEASE_LOCK',
145 'REPEAT',
146 'REVERSE',
147 'RIGHT',
148 'ROUND',
149 'RPAD',
150 'RTRIM',
151 'SEC_TO_TIME',
152 'SECOND',
153 'SESSION_USER',
154 'STR_TO_DATE',
155 'SHA',
156 'SHA1',
157 'SIGN',
158 'SIN',
159 'SOUNDEX',
160 'SPACE',
161 'SQRT',
162 'STD',
163 'STDDEV',
164 'STR_TO_DATE',
165 'STRCMP',
166 'SUBDATE',
167 'SUBSTRING',
168 'SUBSTRING_INDEX',
169 'SBUTIME',
170 'SUM',
171 'SYSDATE',
172 'SYSTEM_USER',
173 'TAN',
174 'TIME',
175 'TIMEDIFF',
176 'TIMESTAMP',
177 'TIMESTAMPADD',
178 'TIMESTAMPDIFF',
179 'TIME_FORMAT',
180 'TIME_TO_SEC',
181 'TO_DAYS',
182 'TRIM',
183 'UCASE',
184 'UNIQUE_USERS',
185 'UNIX_TIMESTAMP',
186 'UTC_DATE',
187 'UTC_TIME',
188 'UTC_TIMESTAMP',
189 'UPPER',
190 'USER',
191 'VERSION',
192 'WEEK',
193 'WEEKDAY',
194 'WEEKOFYEAR',
195 'YEAR',
196 'YEARWEEK'
198 //$PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
199 $PMA_SQPdata_function_name_cnt = 178;
201 $PMA_SQPdata_column_attrib = array (
202 'AUTO_INCREMENT',
203 'BDB',
204 'BERKELEYDB',
205 'BINARY',
206 'DEFAULT',
207 'INNOBASE',
208 'INNODB',
209 'ISAM',
210 'MERGE',
211 'MRG_ISAM',
212 'MRG_MYISAM',
213 'MYISAM',
214 'NATIONAL',
215 'NDB',
216 'NDBCLUSTER',
217 'PRECISION',
218 'UNDEFINED',
219 'UNSIGNED',
220 'VARYING',
221 'ZEROFILL'
223 //$PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
224 $PMA_SQPdata_column_attrib_cnt = 20;
226 $PMA_SQPdata_reserved_word = array (
227 'ACTION',
228 'ADD',
229 'AFTER',
230 'AGAINST',
231 'AGGREGATE',
232 'ALGORITHM',
233 'ALL',
234 'ALTER',
235 'ANALYSE',
236 'ANALYZE',
237 'AND',
238 'AS',
239 'ASC',
240 'AUTOCOMMIT',
241 'AUTO_INCREMENT',
242 'AVG_ROW_LENGTH',
243 'BACKUP',
244 'BEGIN',
245 'BETWEEN',
246 'BINLOG',
247 'BOTH',
248 'BY',
249 'CASCADE',
250 'CASE',
251 'CHANGE',
252 'CHANGED',
253 'CHARSET',
254 'CHECK',
255 'CHECKSUM',
256 'CLIENT',
257 'COLLATE',
258 'COLLATION',
259 'COLUMN',
260 'COLUMNS',
261 'COMMENT',
262 'COMMIT',
263 'COMMITTED',
264 'COMPRESSED',
265 'CONCURRENT',
266 'CONSTRAINT',
267 'CREATE',
268 'CROSS',
269 'CURRENT_TIMESTAMP',
270 'DATA',
271 'DATABASE',
272 'DATABASES',
273 'DAY',
274 'DAY_HOUR',
275 'DAY_MINUTE',
276 'DAY_SECOND',
277 'DELAYED',
278 'DELAY_KEY_WRITE',
279 'DELETE',
280 'DESC',
281 'DESCRIBE',
282 'DISTINCT',
283 'DISTINCTROW',
284 'DIV',
285 'DO',
286 'DROP',
287 'DUMPFILE',
288 'DYNAMIC',
289 'ELSE',
290 'ENCLOSED',
291 'END',
292 'ENGINE',
293 'ENGINES',
294 'ESCAPE',
295 'ESCAPED',
296 'EVENTS',
297 'EXECUTE',
298 'EXISTS',
299 'EXPLAIN',
300 'EXTENDED',
301 'FAST',
302 'FIELDS',
303 'FILE',
304 'FIRST',
305 'FIXED',
306 'FLUSH',
307 'FOR',
308 'FORCE',
309 'FOREIGN',
310 'FROM',
311 'FULL',
312 'FULLTEXT',
313 'FUNCTION',
314 'GEMINI',
315 'GEMINI_SPIN_RETRIES',
316 'GLOBAL',
317 'GRANT',
318 'GRANTS',
319 'GROUP',
320 'HAVING',
321 'HEAP',
322 'HIGH_PRIORITY',
323 'HOSTS',
324 'HOUR',
325 'HOUR_MINUTE',
326 'HOUR_SECOND',
327 'IDENTIFIED',
328 'IF',
329 'IGNORE',
330 'IN',
331 'INDEX',
332 'INDEXES',
333 'INFILE',
334 'INNER',
335 'INSERT',
336 'INSERT_ID',
337 'INSERT_METHOD',
338 'INTERVAL',
339 'INTO',
340 'IS',
341 'ISOLATION',
342 'JOIN',
343 'KEY',
344 'KEYS',
345 'KILL',
346 'LAST_INSERT_ID',
347 'LEADING',
348 'LEFT',
349 'LEVEL',
350 'LIKE',
351 'LIMIT',
352 'LINES',
353 'LOAD',
354 'LOCAL',
355 'LOCK',
356 'LOCKS',
357 'LOGS',
358 'LOW_PRIORITY',
359 'MASTER',
360 'MASTER_CONNECT_RETRY',
361 'MASTER_HOST',
362 'MASTER_LOG_FILE',
363 'MASTER_LOG_POS',
364 'MASTER_PASSWORD',
365 'MASTER_PORT',
366 'MASTER_USER',
367 'MATCH',
368 'MAX_CONNECTIONS_PER_HOUR',
369 'MAX_QUERIES_PER_HOUR',
370 'MAX_ROWS',
371 'MAX_UPDATES_PER_HOUR',
372 'MEDIUM',
373 'MERGE',
374 'MIN_ROWS',
375 'MINUTE',
376 'MINUTE_SECOND',
377 'MODE',
378 'MODIFY',
379 'MONTH',
380 'MRG_MYISAM',
381 'MYISAM',
382 'NAMES',
383 'NATURAL',
384 // 'NO' is not allowed in SQL-99 but is allowed in MySQL
385 //'NO',
386 'NOT',
387 'NULL',
388 'OFFSET',
389 'ON',
390 'OPEN',
391 'OPTIMIZE',
392 'OPTION',
393 'OPTIONALLY',
394 'OR',
395 'ORDER',
396 'OUTER',
397 'OUTFILE',
398 'PACK_KEYS',
399 'PARTIAL',
400 'PASSWORD',
401 'PRIMARY',
402 'PRIVILEGES',
403 'PROCEDURE',
404 'PROCESS',
405 'PROCESSLIST',
406 'PURGE',
407 'QUICK',
408 'RAID0',
409 'RAID_CHUNKS',
410 'RAID_CHUNKSIZE',
411 'RAID_TYPE',
412 'READ',
413 'REFERENCES',
414 'REGEXP',
415 'RELOAD',
416 'RENAME',
417 'REPAIR',
418 'REPEATABLE',
419 'REPLACE',
420 'REPLICATION',
421 'RESET',
422 'RESTORE',
423 'RESTRICT',
424 'RETURN',
425 'RETURNS',
426 'REVOKE',
427 'RIGHT',
428 'RLIKE',
429 'ROLLBACK',
430 'ROW',
431 'ROW_FORMAT',
432 'ROWS',
433 'SECOND',
434 'SELECT',
435 'SEPARATOR',
436 'SERIALIZABLE',
437 'SESSION',
438 'SHARE',
439 'SHOW',
440 'SHUTDOWN',
441 'SLAVE',
442 'SONAME',
443 'SQL_AUTO_IS_NULL',
444 'SQL_BIG_RESULT',
445 'SQL_BIG_SELECTS',
446 'SQL_BIG_TABLES',
447 'SQL_BUFFER_RESULT',
448 'SQL_CACHE',
449 'SQL_CALC_FOUND_ROWS',
450 'SQL_LOG_BIN',
451 'SQL_LOG_OFF',
452 'SQL_LOG_UPDATE',
453 'SQL_LOW_PRIORITY_UPDATES',
454 'SQL_MAX_JOIN_SIZE',
455 'SQL_NO_CACHE',
456 'SQL_QUOTE_SHOW_CREATE',
457 'SQL_SAFE_UPDATES',
458 'SQL_SELECT_LIMIT',
459 'SQL_SLAVE_SKIP_COUNTER',
460 'SQL_SMALL_RESULT',
461 'SQL_WARNINGS',
462 'START',
463 'STARTING',
464 'STATUS',
465 'STOP',
466 'STORAGE',
467 'STRAIGHT_JOIN',
468 'STRING',
469 'STRIPED',
470 'SUPER',
471 'TABLE',
472 'TABLES',
473 'TEMPORARY',
474 'TERMINATED',
475 'THEN',
476 'TO',
477 'TRAILING',
478 'TRUNCATE',
479 'TYPE',
480 'TYPES',
481 'UNCOMMITTED',
482 'UNION',
483 'UNIQUE',
484 'UNLOCK',
485 'UPDATE',
486 'USAGE',
487 'USE',
488 'USING',
489 'VALUES',
490 'VARIABLES',
491 'VIEW',
492 'WHEN',
493 'WHERE',
494 'WITH',
495 'WORK',
496 'WRITE',
497 'XOR',
498 'YEAR_MONTH'
500 //$PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
501 $PMA_SQPdata_reserved_word_cnt = 270;
503 // words forbidden to be used as column or table name,
504 // as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
505 $PMA_SQPdata_forbidden_word = array (
506 'ADD',
507 'ALL',
508 'ALTER',
509 'ANALYZE',
510 'AND',
511 'AS',
512 'ASC',
513 'ASENSITIVE',
514 'BEFORE',
515 'BETWEEN',
516 'BIGINT',
517 'BINARY',
518 'BLOB',
519 'BOTH',
520 'BY',
521 'CALL',
522 'CASCADE',
523 'CASE',
524 'CHANGE',
525 'CHAR',
526 'CHARACTER',
527 'CHECK',
528 'COLLATE',
529 'COLUMN',
530 'CONDITION',
531 'CONNECTION',
532 'CONSTRAINT',
533 'CONTINUE',
534 'CONVERT',
535 'CREATE',
536 'CROSS',
537 'CURRENT_DATE',
538 'CURRENT_TIME',
539 'CURRENT_TIMESTAMP',
540 'CURRENT_USER',
541 'CURSOR',
542 'DATABASE',
543 'DATABASES',
544 'DAY_HOUR',
545 'DAY_MICROSECOND',
546 'DAY_MINUTE',
547 'DAY_SECOND',
548 'DEC',
549 'DECIMAL',
550 'DECLARE',
551 'DEFAULT',
552 'DELAYED',
553 'DELETE',
554 'DESC',
555 'DESCRIBE',
556 'DETERMINISTIC',
557 'DISTINCT',
558 'DISTINCTROW',
559 'DIV',
560 'DOUBLE',
561 'DROP',
562 'DUAL',
563 'EACH',
564 'ELSE',
565 'ELSEIF',
566 'ENCLOSED',
567 'ESCAPED',
568 'EXISTS',
569 'EXIT',
570 'EXPLAIN',
571 'FALSE',
572 'FETCH',
573 'FLOAT',
574 'FOR',
575 'FORCE',
576 'FOREIGN',
577 'FROM',
578 'FULLTEXT',
579 'GOTO',
580 'GRANT',
581 'GROUP',
582 'HAVING',
583 'HIGH_PRIORITY',
584 'HOUR_MICROSECOND',
585 'HOUR_MINUTE',
586 'HOUR_SECOND',
587 'IF',
588 'IGNORE',
589 'IN',
590 'INDEX',
591 'INFILE',
592 'INNER',
593 'INOUT',
594 'INSENSITIVE',
595 'INSERT',
596 'INT',
597 'INTEGER',
598 'INTERVAL',
599 'INTO',
600 'IS',
601 'ITERATE',
602 'JOIN',
603 'KEY',
604 'KEYS',
605 'KILL',
606 'LEADING',
607 'LEAVE',
608 'LEFT',
609 'LIKE',
610 'LIMIT',
611 'LINES',
612 'LOAD',
613 'LOCALTIME',
614 'LOCALTIMESTAMP',
615 'LOCK',
616 'LONG',
617 'LONGBLOB',
618 'LONGTEXT',
619 'LOOP',
620 'LOW_PRIORITY',
621 'MATCH',
622 'MEDIUMBLOB',
623 'MEDIUMINT',
624 'MEDIUMTEXT',
625 'MIDDLEINT',
626 'MINUTE_MICROSECOND',
627 'MINUTE_SECOND',
628 'MOD',
629 'MODIFIES',
630 'NATURAL',
631 'NOT',
632 'NO_WRITE_TO_BINLOG',
633 'NULL',
634 'NUMERIC',
635 'ON',
636 'OPTIMIZE',
637 'OPTION',
638 'OPTIONALLY',
639 'OR',
640 'ORDER',
641 'OUT',
642 'OUTER',
643 'OUTFILE',
644 'PRECISION',
645 'PRIMARY',
646 'PROCEDURE',
647 'PURGE',
648 'READ',
649 'READS',
650 'REAL',
651 'REFERENCES',
652 'REGEXP',
653 'RELEASE',
654 'RENAME',
655 'REPEAT',
656 'REPLACE',
657 'REQUIRE',
658 'RESTRICT',
659 'RETURN',
660 'REVOKE',
661 'RIGHT',
662 'RLIKE',
663 'SCHEMA',
664 'SCHEMAS',
665 'SECOND_MICROSECOND',
666 'SELECT',
667 'SENSITIVE',
668 'SEPARATOR',
669 'SET',
670 'SHOW',
671 'SMALLINT',
672 'SONAME',
673 'SPATIAL',
674 'SPECIFIC',
675 'SQL',
676 'SQLEXCEPTION',
677 'SQLSTATE',
678 'SQLWARNING',
679 'SQL_BIG_RESULT',
680 'SQL_CALC_FOUND_ROWS',
681 'SQL_SMALL_RESULT',
682 'SSL',
683 'STARTING',
684 'STRAIGHT_JOIN',
685 'TABLE',
686 'TERMINATED',
687 'THEN',
688 'TINYBLOB',
689 'TINYINT',
690 'TINYTEXT',
691 'TO',
692 'TRAILING',
693 'TRIGGER',
694 'TRUE',
695 'UNDO',
696 'UNION',
697 'UNIQUE',
698 'UNLOCK',
699 'UNSIGNED',
700 'UPDATE',
701 'USAGE',
702 'USE',
703 'USING',
704 'UTC_DATE',
705 'UTC_TIME',
706 'UTC_TIMESTAMP',
707 'VALUES',
708 'VARBINARY',
709 'VARCHAR',
710 'VARCHARACTER',
711 'VARYING',
712 'WHEN',
713 'WHERE',
714 'WHILE',
715 'WITH',
716 'WRITE',
717 'XOR',
718 'YEAR_MONTH',
719 'ZEROFILL'
721 // echo count($PMA_SQPdata_forbidden_word);
722 $PMA_SQPdata_forbidden_word_cnt = 214;
724 $PMA_SQPdata_column_type = array (
725 'BIGINT',
726 'BINARY',
727 'BIT',
728 'BLOB',
729 'BOOL',
730 'CHAR',
731 'CHARACTER',
732 'DATE',
733 'DATETIME',
734 'DEC',
735 'DECIMAL',
736 'DOUBLE',
737 'ENUM',
738 'FLOAT',
739 'FLOAT4',
740 'FLOAT8',
741 'INT',
742 'INT1',
743 'INT2',
744 'INT3',
745 'INT4',
746 'INT8',
747 'INTEGER',
748 'LONG',
749 'LONGBLOB',
750 'LONGTEXT',
751 'MEDIUMBLOB',
752 'MEDIUMINT',
753 'MEDIUMTEXT',
754 'MIDDLEINT',
755 'NCHAR',
756 'NUMERIC',
757 'REAL',
758 'SET',
759 'SMALLINT',
760 'TEXT',
761 'TIME',
762 'TIMESTAMP',
763 'TINYBLOB',
764 'TINYINT',
765 'TINYTEXT',
766 'VARBINARY',
767 'VARCHAR',
768 'YEAR'
770 //$PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
771 $PMA_SQPdata_column_type_cnt = 44;